芹菜节拍在同一时间间隔组下调度多个任务



我正在尝试设置两个每分钟运行一次的任务。有没有办法把它们组合在一起跑?

我在celeryconfig.py中指定了CELERYBEAT_SCHEDULE如下:

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

所以,如果我想运行两个任务,我会期望这样的结果吗?

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

然而,它没有起作用。有标准的方法吗?

Celery Documentation:Periodic Tasks声明您只能有要执行的任务的名称(而不是列表等(

您可以创建两个不同的时间表条目:

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)
    },
}
CELERYBEAT_SCHEDULE = {
'every-minute': {
    'task': 'tasks.add',
    'schedule': crontab(minute='*/1'),
    'args': (1,2)
},

}

根据你的问题,你可以使用单任务芹菜来完成你的工作。你的任务.py应该是

def multiply(p1,p2):
  return p1*p2
def add(x,y):
  z=multiply(3,4)
  return x+y,z

相关内容

  • 没有找到相关文章

最新更新