我的朋友一直在谈论用芹菜做耗时的任务,因为我没有计算机科学,所以我无法确切地了解芹菜任务的执行时间。 在 celery 文档中,在调用 .delay(( 时谈论守护进程,但我找不到什么是守护进程,最后如果我们通过 .delay(( 调用它,芹菜任务将何时执行? :)
例如,如果我有以下代码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 文档中的默认配置。谢谢。
想象一下,你不是一个人有这个任务,而是有几个任务。如果使用 my_task.delay()
调用所有这些任务,则将所有这些任务放在队列中。现在有几个工作线程只选择第一个打开的任务并执行它们。
所以正确的答案是"只要负责任的工人是自由的"。这可能在您进入while second<10:
循环之前,但如果工作人员当前正忙,也可能需要几秒钟或几分钟。