Celery - 在其他模块中执行任务

问题描述

假设我有两个 python 包

  1. producer
  2. consumer

它们位于不同的存储库中(并在不同的服务器上运行)

我想用 Celery 实现一些后台任务 producer 将创建任务,consumer 将执行它们

现在,celery 似乎是这样完成的,任务代码必须在 consumerproducer 之间共享...

有没有办法让生产者从 celery 任务开始,这样 producer 永远不知道 consumer 的实际源代码

解决方法

是的,使用 send_task() - 我之前已经在这里回答过类似的问题。这个函数的美妙之处在于您只需要知道任务名称及其参数,并且您自然需要具有相同的配置(代理、序列化等)。