如何将Celery任务从一台机器发送到另一台机器



我正试图借助"任务名称"将任务从机器a上的芹菜工人发送到机器B上的芹菜工。

所有任务都在机器B上定义,只有一个任务在机器A上。我想将task_name传递给机器A工作人员,并在机器B中使用相同的task_name执行任务。

我如何相互沟通。

我们在两个工人身上保持相同的broker_url吗?

我使用Redis作为Broker url和结果后端。

(1(您可以使用机器A和机器B的独立代理来实现这一点。默认情况下,redis通常为您提供十六个数据库,编号为0-15。因此,您可以很容易地将db 0分配给A的代理,并将db 1分配给B的代理。然后,要将任务从B发送到A,您可以使用send_task:

from celery import Celery
app = Celery('redis://myredis-server:6379/0')
app.send_task('task_name', kwargs={ 'param1': 'value1' })

(2( 如果使用单独的芹菜队列,也可以使用一个代理来完成此操作。

相关内容

  • 没有找到相关文章

最新更新