繁体   English   中英

当我们用.delay()调用任务时芹菜任务将被执行

[英]when celery task will be execute if we call task with .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-每当想要:)

我没有指出的正确方法。 :)

如果它取决于配置我必须告诉我使用芹菜文档的默认配置。谢谢你。

想象一下,你没有单独完成这项任务,而是几项任务。 如果使用my_task.delay()调用它, my_task.delay()所有这些任务放在队列中。 现在有几个工人只选择第一个打开的任务并执行它们。

所以正确的答案是“只要负责任的工人有空”。 这可能会在您进入while second<10: -loop之前立即进行,但如果工作人员当前正忙,也可能需要几秒钟或几分钟。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM