【发布时间】:2013-04-19 15:49:55
【问题描述】:
我有一个需要某种协调器组件的服务。协调器将管理需要分配给用户的实体,如果用户没有及时响应,则从用户那里取走,如果用户响应,也会处理用户响应。协调员还需要联系消息服务以通知用户他们有事情要处理。
我希望协调器是一个单线程进程,因为在使用的前几年预计负载不会太大,我宁愿将所有并发问题推迟到我真正需要的时候处理它们(如果有的话)。
协调器将从 Django 网络服务器接收新实体和用户响应。我认为处理这个问题的最简单方法是使用 Celery 任务 - 网络服务器只是启动协调器在自己的时间消耗的任务。
为此,我需要协调器包含一个 celery worker,并用我自己的版本替换当前的 worker 主循环(检查代理是否有新消息并处理调度)。
它的可行性如何?另一种方法是避免使用 Celery,直接使用 RabbitMQ。我不想那样做。
【问题讨论】:
-
能否提供更详细的信息。我不明白为什么你真的需要替换主循环。
-
我希望worker处理传入的任务,以及各种调度事件。
标签: python django rabbitmq celery