我的launch.json中有这种芹菜配置(我在Linux Docker上运行它(:
{
"name": "Python: Celery",
"type": "python",
"request": "launch",
"module": "celery",
"console": "integratedTerminal",
"args": [
"-A",
"celery_worker",
"worker",
"-Q",
"test pipeline *** collect BB",
"--concurrency=1",
"-l",
"info",
"-P",
"solo",
]
},
我设置了文档中提到的"--concurrency=1"。
例如,当我向我的 RabbitMq 代理发送 4 条消息,激活工作线程,在处理消息的函数开头的条目中放置断点,然后在发送响应之前终止程序,我看到所有 4 条消息都是 RabbitMq 中的 Nack,我希望只有 1 条消息是 Nack
为了实现所需的行为,必须确保设置了两个设置:
task_acks_late = True
worker_prefetch_multiplier = 1