python - 是否可以将 celery 用于同步任务?

标签 python task celery task-queue

几乎同步工作;基本上,我想将 Web 应用程序背后的数据访问和处理委托(delegate)给大多数作业的任务队列。对于 celery 任务,我认为合理的最快延迟是多少?

更新(澄清)

为了清楚起见,我想我应该解释吞吐量——虽然不错——对我来说不是一个必要的问题;我暂时不需要朝那个方向扩展。延迟是我目前要评估的唯一标准。如果这是唯一可行的方法,我很乐意使用 task.apply,但我想稍微分担一些工作。

最佳答案

当我说 throughput 时,我指的是从发送任务到执行任务的平均延迟。对于 roundtrip,我指的是发送任务、执行任务、发回结果并检索结果所需的平均时间。

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

我目前正在写一份性能指南,您可能会感兴趣: http://ask.github.com/celery/userguide/optimizing.html

欢迎提供反馈,并希望了解您感兴趣的任何其他性能因素。

[1] http://celeryq.org/docs/userguide/tasks.html#granularity

关于python - 是否可以将 celery 用于同步任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4222489/

相关文章:

python - 获取 Pandas 的月平均值

Python:为什么列表理解比for循环慢

.net - TPL vs.InvokeRequired/Invoke

c# - .NET 中的异步排序(使用任务)

linux - 关于服务器上的内存和进程

python-3.x - 可以在 gpu 上运行 celery 吗?

python - 在 celerybeat 中一次只运行一个任务

python - pandas 列值和变量值字符串连接

c# - 在 C# 中;从后台线程检查更改的最有效方法是什么?

python - 如何运行python文件中的所有方法,并返回是否有任何方法返回true?