【发布时间】:2026-01-19 19:15:01
【问题描述】:
我基本上想将预取设置为 1。但是我认为在运行 celery worker -prefetch=1 或类似的东西时没有办法做到这一点。我需要创建一个设置文件,但不确定该文件应命名为什么(settings.py?)以及该文件应位于何处。
所有的芹菜工人都需要这个设置文件吗?
关于预取值,我阅读了Understanding celery task prefetching 以更好地理解它。
【问题讨论】:
我基本上想将预取设置为 1。但是我认为在运行 celery worker -prefetch=1 或类似的东西时没有办法做到这一点。我需要创建一个设置文件,但不确定该文件应命名为什么(settings.py?)以及该文件应位于何处。
所有的芹菜工人都需要这个设置文件吗?
关于预取值,我阅读了Understanding celery task prefetching 以更好地理解它。
【问题讨论】:
如果需要在命令行修改,使用'celery worker [options] -- [configuration]
celery worker -n slow.task.Worker -A myworker -Q queueA -- celeryd.prefetch_multiplier=1
celery worker -n Fast.task.Worker -A myworker -Q queueB -- celeryd.prefetch_multiplier=8
这样你可以拥有相同的 celeryconfig.py 但在命令行中设置一些不同。
【讨论】:
您可以通过创建一个名为 celeryconfig 的模块并在其中设置适当的指令来定义 Celery 的设置。模块文件 celeryconfig.py 必须在 Python 路径上可用。见configuration docs。
您可以使用CELERYD_PREFETCH_MULTIPLIER 指令设置预取值。
【讨论】: