我的朋友一直在谈论用芹菜做耗时的任务。由于我没有计算机科学,所以我无法确切了解芹菜任务的执行时间。在celery文档中,当调用.delay()时谈论守护程序,但我找不到什么守护程序,最后,如果我们通过.delay()调用它,则何时确切执行celery任务? :)
例如,如果我具有以下代码,何时执行my_task? function.py:
def test():
my_task.delay()
while second<10:
second += 1 # assume this part take a second
1-恰好在test()
函数完成时(调用test()
后约10秒)
2 while loop
中间
3-完成test()
之后,并且请求不是太多并且服务器有时间和资源来执行任务时!! (也许芹菜很聪明,并且知道执行任务的最佳时间)
4-随时需要:)
5-我没有指出的正确方法。 :)
如果这取决于配置,我必须告诉我我使用了celery文档中的默认配置。谢谢。
答案 0 :(得分:3)
想象一下,您不是一个人完成一项任务,而是几个任务。如果使用my_task.delay()
调用所有任务,则将它们放在队列中。现在有几个工作人员只选择第一个打开的任务并执行它们。
所以正确的答案是
“只要负责任的工人有空”。这可能就在您进入while second<10:
循环之前,但如果工作人员当前很忙,则可能还需要几秒钟或几分钟。