芹菜-如何从远程机器发送任务?

2024-04-25 03:36:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我们有一个运行芹菜工人的服务器和一个Redis队列。任务在该服务器上定义。
我需要能够从远程计算机调用这些任务。
我知道这是用send_task完成的,但我还没有弄清楚怎么做?如何告诉send_task队列在哪里?在哪里传递连接参数(或任何需要的参数)?我已经找了几个小时了,我能找到的只有:

from celery.execute import send_task
send_task('tasks.add')

好吧,这意味着我也需要celery在我的呼叫机上。但我还需要设置什么?


Tags: from服务器redissendtaskexecute参数远程
1条回答
网友
1楼 · 发布于 2024-04-25 03:36:47

这可能是一种方式: 创建一个芹菜对象并使用该对象的send_任务,该对象可以具有查找代理的配置。

from celery import Celery
celery = Celery()
celery.config_from_object('celeryconfig')
celery.send_task('tasks.add', (2,2))

芹菜配置是一个包含芹菜配置的文件,有其他方法可以对芹菜对象设置配置。

网友
2楼 · 发布于 2024-04-25 03:36:47

有几种方法可以定义路由规则,其中最常用的是自定义路由器对象。在所有情况下,调用者只在send_taskdelayapply_async中提供一个routing_key参数,路由器决定将任务发送到哪个队列。

网友
3楼 · 发布于 2024-04-25 03:36:47

在远程计算机上,启动芹菜,使代理url指向要在其上运行任务的计算机。然后只提交任务(如果有特定的队列要提交,则添加适当的路由密钥)。

相关问题 更多 >