rabbitmq 运行客户端通道备份轮询器Celery Beat

t1qtbnec  于 2022-12-13  发布在  RabbitMQ
关注(0)|答案(1)|浏览(178)

我正在与西芹节拍和工人在Kubernetes的一个项目。
我用这个配置运行了一个项目。

app = Celery('celery-worker',
             broker=RABBITMQ_URL,
             backend=REDIS_URL
             )
app.conf.update(
    result_expires=3600,
)

运行命令为:

celery -A app worker -B -l INFO

运行后,Celery Beat日志显示了许多行:backup_poller.cc:138] Run client channel backup poller: UNKNOWN:pollset_work {created_time:"2022-12-10T15:25:01.080085021+03:30", children:[UNKNOWN:Bad file descriptor {created_time:"2022-12-10T15:25:01.080072267+03:30", errno:9, os_error:"Bad file descriptor", syscall:"epoll_wait"}]}
在寻找了一些解决方案之后,我将Celery run命令中的pool选项更改为--pool=gevent,但这也不起作用。
我怎样才能解决这个问题呢?

ycggw6v2

ycggw6v21#

基于文档,对于生产环境,您需要单独启动celery beat。因此,您需要为Beat和Worker使用单独的pod,并仅为Worker pod使用--pool。

celery -A app beat -l INFO
celery -A app worker -l INFO --pool=gevent -c 1

相关问题