Aipo bater com tarefas de método não funciona
Estou tentando executar celerybeat em uma tarefa de método e não consigo fazer nada funcionar corretamente. Aqui está um exemplo de configuração:
from celery.contrib.methods import task_method
from celery import Celery, current_app
celery=celery('tasks', broker='amqp://guest@localhost//')
celery.config_from_object("celeryconfig")
class X(object):
@celery.task(filter=task_method, name="X.ppp")
def ppp(self):
print "ppp"
e meu arquivo celeryconfig.py é
from datetime import timedelta
CELERYBEAT_SCHEDULE = {
'test' : {
'task' : 'X.ppp',
'schedule' : timedelta(seconds=5)
},
}
Quando eu corrocelery beat
, Estou recebendo erros como:
task X.ppp raised exception, TypeError('ppp() takes exactly 1 argument, (0 given)
Quando eu viro o método para uma função normal e o decoro com `@ celery.task ', ele funciona, então o resto da configuração parece estar funcionando. Eu vejo as ressalvasnos documentos sobre tarefas de método, mas realmente não é possível resolver onde está o problema. Alguém sabe como resolver isso?