【发布时间】:2013-10-03 15:30:29
【问题描述】:
我正在尝试找出让 zeroMQ 侦听器在我的 django 应用程序中永久运行的最佳方法。
我正在我的 Django 项目中设置一个 zmq 服务器应用程序,它充当我们网络中其他应用程序的内部 API(无需通过 http/requests 的东西,因为这些应用程序是内部的)。我希望我的 django 项目中的 zmq 侦听器始终处于活动状态。
我想在我的 Django 项目中使用 zmq 监听器,这样我就可以访问所有项目模型(用于查询)和其他 django 上下文内容。
我现在在想:
设置一个 Django 管理命令,它将运行侦听器并使其永远保持活动状态(也就是 zmq 侦听器代码中的无限循环)或
使用 celery worker 让 zmq 监听器始终保持活动状态?但我不完全确定如何让芹菜工人重新启动一项任务,除非它没有运行。所有 celery 文档都是关于频率/延迟运行的。或者也许我应该让 celery 在给定的时间间隔内清除任务并重新启动它......
关于性能影响或替代方法的任何提示、建议?
【问题讨论】:
-
你的第一选择看起来像我要走的路:拥有一个专门的进程来管理 zeromq 套接字(而 Django 进程处理 HTTP 请求)。
标签: python django celery zeromq