メソッドタスクでcelerybeatを実行しようとしていますが、正しく機能するものが何もありません。設定例は次のとおりです。
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"
私のceleryconfig.pyファイルは
from datetime import timedelta
CELERYBEAT_SCHEDULE = {
'test' : {
'task' : 'X.ppp',
'schedule' : timedelta(seconds=5)
},
}
実行するcelery beat
と、次のようなエラーが発生します。
task X.ppp raised exception, TypeError('ppp() takes exactly 1 argument, (0 given)
メソッドを通常の関数に変換して`@celery.task'で装飾すると、機能するので、残りのセットアップは機能しているように見えます。メソッドタスクに関するドキュメントに警告がありますが、問題がどこにあるかを実際に分類することはできません。誰かがこれを解決する方法を知っていますか?