【发布时间】:2019-06-05 21:14:24
【问题描述】:
我有一个项目 "A" (Django),我想在其中生成要发送到 Celery 代理的消息,例如 Redis。
在另一个项目“B”(同一台机器上的普通python)我想启动一个芹菜服务器工作者来监控代理中的消息并执行任务。任务在 B 中定义。
当任务完成时,他们会将结果保存在 redis 中(也用作结果后端)。
当响应准备好时,我希望 django 知道。
这可能吗?
我主要担心的是 A 不应该从 B 导入任务,所以我应该使用 send_task('task_name') 之类的东西。
实际上我应该创建 2 个单独的 celery 实例但只运行一个服务器工作者?
- 实例 1 只发送消息和读取结果
- 实例 2 注册将执行的任务。任务最终将结果发送到后端
这个架构是正确的还是我遗漏了什么?
【问题讨论】:
标签: python redis celery django-celery