消息队列:celery在Windows上运行worker在执行任务时,获取不到运行状态

本文讨论了Celery在Windows环境中使用gevent或Eventlet时遇到的worker状态为offline的问题,并提出了解决方案,即切换到threads并发模式。通过修改Celery配置,将worker的并发方式从eventlet改为threads,可以避免任务执行中的阻塞,确保worker状态的正常获取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • celery支持Prefork, Eventlet, gevent, threads/single threaded集中方式的并发
  • 但在window上不支持Prefork,因此我在使用gevent或则eventlet的时候经常碰到worker在执行任务时,状态为offline
    解决方法:将并发方式改为threads即可,代码如下:
celery -A tasks.tasks worker -P eventlet 
# 上面的并发方式为单线程,有时会阻塞,导致不能获取worker状态,改为下面即可解决
celery -A tasks.tasks worker -P threads 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值