您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

了解Celery任务预取

了解Celery任务预取

预取可以提高性能。工人无需等待来自代理的下一条消息即可处理。与代理进行一次通信并处理大量消息可提高性能。与本地内存访问相比,从代理(甚至从本地代理)获取消息的成本很高。还允许工人分批确认消息

将预取设置为零意味着“没有特定限制”,而不是无限

据记载,将预取设置为1等同于将其关闭,但这并非总是如此(请参阅: 只是警告:在对Redis经纪人+ Celery 3.1.15进行测试时,我阅读的有关CELERYD_PREFETCH_MULTIPLIER = 1禁用预取的所有建议显然都是错误的。

为了证明这一点:

开始在Redis中观察任务队列的长度: watch redis-cli -c llen default

开始 celery worker -c 1

请注意,Redis中的队列长度将立即从5降至3``CELERYD_PREFETCH_MULTIPLIER = 1 `不会阻止预取,它只是将预取限制为每个队列1个任务。

-Ofair,尽管文档中说什么,也不会阻止预取。

除了修改代码外,我还没有找到完全禁用预取的任何方法

其他 2022/1/1 18:29:32 有498人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶