Celery
可以通过send_task
调用发起其他服务器上的任务,但是需要连接上同一个broker
前提:
服务器A已经运行了celery的worker以及beat服务,现在服务器B,需要发起A上的任务say_hello
服务器B的关键代码如下:
from celery import Celery
from ./algo_celery_config import CeleryConfig
try:
data = {"a": "111", "b": "222"}
app = Celery('tasks')
# 此处的 celeryConfig 即 服务器A 上的配置,可以完全复制过来
app.config_from_object(CeleryConfig)
# 1. 此处 send_task(), 直接使用任务的名称,之前使用 tasks.say_hello 没有成功
# 2. 如果有 queue ,建议指定
# 3. 可以直接传参数的
app.send_task('say_hello', queue='task_queue', kwargs=data )
except:
print("error")
如上,即可远程调用celery任务