如果我们使用 .delay() 调用任务,则何时执行芹菜任务



我的朋友一直在谈论用芹菜做耗时的任务,因为我没有计算机科学,所以我无法确切地了解芹菜任务的执行时间。 在 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:循环之前,但如果工作人员当前正忙,也可能需要几秒钟或几分钟。

相关内容

  • 没有找到相关文章

最新更新