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