我有一个需要某种协调器组件的服务。协调器将管理需要分配给用户的实体,如果用户没有及时响应则从用户处获取,并且如果他们做出响应则还处理用户响应。协调员还需要联系消息服务,以通知他们有能力处理的用户。
我希望协调器是一个单线程进程,因为在使用的最初几年中负载预计不会太多,而且我宁愿将所有并发问题推迟到我真正需要的时候处理它们(如果有的话)。
协调员将从Django网络服务器接收新实体和用户响应。我认为处理这个问题的最简单方法是使用Celery任务 - 网络服务器只是启动协调员在其自己的时间消耗的任务。
为此,我需要协调器包含一个芹菜工作者,并用我自己的版本替换当前的工作者主循环(一个检查代理的新消息并处理调度)。
它有多可行?另一种方法是避免使用Celery并直接使用RabbitMQ。我宁愿不这样做。
答案 0 :(得分:0)
将此名称替换为:rabbitmq(或其他一些经纪人kombu支持)的协调员和芹菜工人的用户。
我非常确定你可以通过配置celery / kombu和rabbitmq来完成所需的一切(以及更多),而无需编写太多(如果有的话)代码行。
小记:Celery提供预定任务。