12

毎分実行される 2 つのタスクを設定しようとしています。それらを 1 つにグループ化して実行する方法はありますか?

私は次のように指定CELERYBEAT_SCHEDULEしましたceleryconfig.py

CELERYBEAT_SCHEDULE = {
    'every-minute': {
        'task': 'tasks.add',
        'schedule': crontab(minute='*/1'),
        'args': (1,2)
    },
}

では、2 つのタスクを実行したい場合、次のようになると思いますか?

CELERYBEAT_SCHEDULE = {
    'every-minute': {
        'task': ['tasks.add','task.multiply'],
        'schedule': [crontab(minute='*/1'),crontab(minute='*/1')],
        'args': [(1,2),(3,4)]
    },
}

しかし、うまくいきませんでした。これを行う標準的な方法はありますか?

4

2 に答える 2

20

Celery Documentation: Periodic Tasksには、実行するタスクの名前のみを含めることができると記載されています (リストなどではありません)。

次の 2 つの異なるスケジュール エントリを作成できます。

CELERYBEAT_SCHEDULE = {
    'every-minute_add': {
        'task': 'tasks.add',
        'schedule': crontab(minute='*/1'),
        'args': (1,2)
    },
    'every-minute_multiply': {
        'task': 'task.multiply',
        'schedule': crontab(minute='*/1'),
        'args': (3,4)
    },
}
于 2014-03-27T20:44:52.923 に答える