我遇到了一个用例,我想控制芹菜工人如何以及何时将任务从rabbitmq中取出来进行处理。出队将与 celery 上下文之外发生的外部事件同步,但我担心的是 celery 是否给我任何灵活性来控制任务的出队?我试图调查,以下是一些可能性:
使用
basic.get
代替basic.consume
,basic.get
根据外部事件触发。但是,我看到 celery 默认为basic.consume
(推送)语义。我可以在不直接修改核心的情况下覆盖此行为吗?在触发外部事件时自定义远程控制工作人员。但是,从文档中我不太清楚远程控制命令如何帮助我控制任务的出队。
我非常倾向于继续使用 celery,并且可能避免在 AMQP 之上编写自定义队列处理解决方案。