# get a list of stuff
@celery.task
def getList():
listOfStuff = getStuff()
for thing in listOfStuff:
processThing.apply_async(args=(thing))
# another attempt at list of stuff
@celery.task
def getList():
listOfStuff = getStuff()
for thing in listOfStuff:
processThing.s((thing))
@celery.task
def processThing(thing):
pass
因此getList()实现都不会触发processThing任务。我无法弄清楚原因。我猜测有一种更好的方法来完成我想要完成的事情,但我无法弄清楚那是什么。
如何从其他任务中启动任务?
答案 0 :(得分:1)
http://docs.celeryproject.org/en/latest/userguide/tasks.html#avoid-launching-synchronous-subtasks
下的文档解释了这种情况这是一个先前的线程,显示了类似情况下的一些代码:How to chain a Celery task that returns a list into a group?
答案 1 :(得分:0)
celery.execute.send_task("task.fqn", args=[], kwargs={})
这是产生我的任务的命令。