Запуск методов на основе классов в качестве задач Celery

У меня проблемы с запуском задач при настройке в качестве методов класса. Я прочитал о celery.contrib.methods. из ответа здесь на SO, но я не могу применить его к моему делу.

celery_conf.celeryapp.py

from __future__ import absolute_import
from celery import Celery
app = Celery()
app.config_from_object('celery_conf.celeryconfig')
if __name__ == '__main__':
    app.start()

celery_conf.celeryconfig.py

BROKER_URL = 'amqp://'
CELERY_RESULT_BACKEND = 'amqp://'
CELERY_TASK_RESULT_EXPIRES = 3600
CELERY_AMQP_TASK_RESULT_EXPIRES = 60
CELERYD_PREFETCH_MULTIPLIER = 0
CELERY_IMPORTS=("student.process_records")

student.process_records.py

from celery_conf.celeryapp import app
from celery.contrib.methods import task_method

class Student():
    '''student class'''
    @app.task(filter=task_method, name='student.process_records.get_student_id')
    def get_student_id(self, **kwargs):
        '''process some student ids'''    

def main():
    student = Student()
    student.get_student_id.delay(**task_to_do)

if __name__ == '__main__':
    main()

С приведенной выше конфигурацией я продолжаю получать ошибки [2014-10-29 20:38:02,073: CRITICAL/MainProcess] Can't decode message body: DecodeError(AttributeError("Can't get attribute 'Student' on <module 'celery.bin.celery' from '/home/lukik/venv/python_3_4/lib/python3.4/site-packages/celery/bin/celery.py'>",),) [type:'application/x-python-serialize' encoding:'binary' headers:{}]

kombu.exceptions.DecodeError: Can't get attribute 'Student' on <module 'celery.bin.celery' from '/home/lukik/venv/python3_4/lib/python3.4/site-packages/celery/bin/celery.py'>

Как мне настроить или импортировать элементы, чтобы он работал?

celery_version = 3.1.16 python_version = python3.4


person lukik    schedule 29.10.2014    source источник
comment
Вы сериализуете себя, и его нельзя расшифровать. Почему вы хотите включить рабочую задачу в класс вашей модели?   -  person ant31    schedule 31.10.2014
comment
Модельный класс находится в пакете, который просто обрабатывает данные из файлов о студентах. Он захватывает студенческие билеты и выполняет очистку данных. Тем не менее, согласно ссылкам, приведенным в вопросе, представляется возможным запускать задачи с использованием методов класса. Я понимаю, что self не может быть сериализован, но если я его опускаю, выдается ошибка об отсутствии self. Предполагая, что мой вариант использования имеет смысл, пожалуйста, объясните, как я буду делать объявления или как я буду называть задачу. Спасибо.   -  person lukik    schedule 01.11.2014