Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 可以用芹菜做同步任务吗?_Python_Task_Celery_Task Queue - Fatal编程技术网

Python 可以用芹菜做同步任务吗?

Python 可以用芹菜做同步任务吗?,python,task,celery,task-queue,Python,Task,Celery,Task Queue,几乎同步的工作,也;基本上,我希望将web应用程序后面的数据访问和处理委托给大多数作业的任务队列。对于芹菜任务,我认为最合理的延迟时间是多少? 更新(澄清) 我想为了清楚起见,我应该解释吞吐量——虽然很好——对我来说不是一个必要的问题;我暂时还不需要朝那个方向扩展。延迟是目前我要评估的唯一标准。我很乐意使用任务。如果这是唯一可行的方法,那么就应用,但我想把这项工作做一点。当我说吞吐量时,我指的是从发送任务到执行任务的平均延迟。对于往返我指的是发送任务、执行任务、返回结果和检索结果所需的平均时间

几乎同步的工作,也;基本上,我希望将web应用程序后面的数据访问和处理委托给大多数作业的任务队列。对于芹菜任务,我认为最合理的延迟时间是多少?

更新(澄清)
我想为了清楚起见,我应该解释吞吐量——虽然很好——对我来说不是一个必要的问题;我暂时还不需要朝那个方向扩展。延迟是目前我要评估的唯一标准。我很乐意使用
任务。如果这是唯一可行的方法,那么就应用
,但我想把这项工作做一点。

当我说
吞吐量时,我指的是从发送任务到执行任务的平均延迟。对于
往返
我指的是发送任务、执行任务、返回结果和检索结果所需的平均时间

正如我在评论中所说的,我目前没有任何官方数字可供分享,但我可以与你分享 与许多其他解决方案相比,正确的配置芹菜具有较低的延迟,但它确实比在本地执行函数带来更多的开销。这是设计任务粒度时需要考虑的因素[1]

我目前正在撰写一份可能会引起兴趣的绩效指南:

欢迎反馈,并希望了解您感兴趣的任何其他绩效因素


[1]

这实际上取决于硬件、网络、代理和配置。我已经能够在MacBook Pro 2x core上以每秒约1000个任务(往返:发布并获取结果)。不过,默认配置并不能让你做到这一点,因为它优化了许多短任务和一些很长任务之间的中间地带;我可以永远扩展工作人员的数量,因此您能否提供有关如何设置低延迟配置的指导?我有两个短任务(返回数据以供立即使用)和长任务(生成大报告)要执行,如果它们有区别的话。或者,一个好的博客或文档在哪里有详细的操作方法?你可以从CELERYD_PREFETCH_乘数=0开始(或者从默认值4提高到32/64)。还有芹菜禁用率限制=True,如果你不需要速率限制,它会禁用部分“机械”。这似乎是合理的。所以,我推测这意味着工人们已经对下一个任务有了“保留”了这个设置?我如何确保以合理的速度收到结果?我希望能够有接近
任务行为的行为。在速度方面应用
。。。我能用这个来实现吗?使用0,它会保留尽可能多的任务(甚至数百万),所以这不是一个好主意,但您可以将其设置为一个很大的数字。请记住,如果工作人员崩溃,代理将重新交付任务。