如何使用Celery从另一个服务器运行任务?
我有两个不同的Python应用程序,它们都使用Celery,并且连接到同一个消息代理。
服务器A上有我所有的@tasks(任务),但我需要从服务器B来执行这些任务。因为在服务器B上没有这些任务,所以我不能像平常那样导入任务。
那么在Celery中,如何从服务器B运行只存在于服务器A上的任务呢?
也就是说,
服务器B:
from tasksFromSeverA import add
add.delay(4, 4)
在Celery中有没有什么方法可以让你发送一个信号,让消息代理去运行一个叫做'Add'的任务呢?
1 个回答
3
据我所知,你不能在“服务器B”上执行一个“服务器B”没有实现的任务。
你可以做的是从“服务器B”去执行“服务器A”上的任务。你可以使用send_task这个功能来实现,具体的说明可以参考这个链接:
http://celery.readthedocs.org/en/latest/faq.html#can-i-call-a-task-by-name