2

我有一项需要某种协调器组件的服务。协调器将管理需要分配给用户的实体,如果用户没有及时响应,则从用户那里取走,如果用户响应,也会处理用户响应。协调员还需要联系消息服务以通知用户他们有事情要处理。

我希望协调器是一个单线程进程,因为在使用的前几年预计负载不会太大,我宁愿将所有并发问题推迟到我真正需要处理它们的时候(如果有的话)。

协调器将从 Django 网络服务器接收新实体和用户响应。我认为处理这个问题的最简单方法是使用 Celery 任务 - 网络服务器只是启动协调器在自己的时间消耗的任务。

为此,我需要协调器包含一个 celery worker,并用我自己的版本替换当前的 worker 主循环(用于检查代理是否有新消息并处理调度的版本)。

可行性如何?另一种方法是避免使用 Celery,直接使用 RabbitMQ。我宁愿不那样做。

4

1 回答 1

0

替换这个名字:协调器用 rabbitmq(或其他一些代理 kombu 支持)和用户用芹菜工人。

我很确定您只需配置 celery/kombu 和 rabbitmq 并且无需编写太多(如果有的话)代码行,就可以完成您需要的一切(以及更多)。

小记:Celery 具有定时任务功能。

于 2013-04-22T18:37:00.937 回答