芹菜:4.3.0 经纪人:RabbitMQ 后端:MongoDB
我有以下任务
i
芹菜应用程序使用节拍
@task(bind=True, name='find_something_a')
def find_something_a(self):
data = find_data(a)
return dumps(data)
@task(bind=True, name='find_something_b')
def find_something_a(self):
data = find_data(b)
return dumps(data)
@task(bind=True, name='find_something_c')
def find_something_a(self):
data = find_data(c)
return dumps(data)
@task(bind=True, name='write_something')
def write_something(self, data):
data = loads(data)
return = insert(data).getId()
@task(bind=True, name='read_analyse')
def read_analyse(self, id):
data = find_data(id)
result = analyse(data)
return dumps(result)
@task(bind=True, name='chord_data')
def chord_data(self):
callback = write_something.s()
header = [find_something_a.s(),
find_something_b.s(),
find_something_c.s()]
chord(header)(callback)
@task(bind=True, name='chain_tasks')
def chain_tasks(self):
chain(chord_data.s() | read_analyse.s()).apply_async()
config
@app.on_after_configure.connect
def setup_periodic_tasks(sender, **kwargs):
sender.add_periodic_task(60, chain_tasks.s(), name='new every 60 seconds')
我不确定如何执行和弦是正确的。似乎和弦任务本身已完成,而链式任务已执行,但实际上在后台,分组任务和回调仍未完成。
我尝试使用prefork和eventlet,结果相同。还将预取添加到1。
谢谢