我看到的执行/调度Celery任务的所有示例都是这样的:
add.delay()
我想知道我是否可以用芹菜做这样的事情:
celery_app.publish(topic='my-topic')
在其他代码库/服务中:
@task(topic='my-topic')
def mytask():
do_stuf()
这样,当事件发生时,我就不需要知道哪些任务必须做一些事情。
我可能有一些误解导致了这个问题,但我自己找不到答案。
没有主题,只有队列。是的,您可以将任务发送到任何队列。订阅队列是一个工作者级别的远程命令,所以这也是可能的。
此外,您不能向队列发送任意消息,只能向Celery任务发送。如果您想生成/使用任意消息,请使用kombu。