我正试图找到让dMango应用程序永久运行zeroMQ监听器的最佳方法。
我在我的Django项目中设置了一个zmq服务器应用程序,它充当我们网络中其他应用程序的内部API(不需要通过http /请求,因为这些应用程序是内部的)。我希望我的django项目中的zmq监听器始终处于活动状态。
我想在我的Django项目中使用zmq监听器,这样我就可以访问所有项目模型(用于查询)和其他django上下文。
我现在在想:
设置一个Django管理命令,它将运行监听器并使其永久保持活动(在zmq监听器代码中也称为无限循环)或
使用芹菜工作者始终保持zmq监听器的活动状态?但我不确定如何让芹菜工人重新启动任务,只有它没有运行。所有芹菜文档都与频率/延迟运行有关。或者也许我应该让芹菜在给定的时间间隔内清除任务。无论如何重启..
有关性能影响或替代方法的任何提示,建议?
答案 0 :(得分:1)
设置管理命令是一种很好的方法,尤其是当您在自己的硬件上运行时。
如果您在云中运行,机器可能会随着您的流程而消失,那么后者是更好的选择。这就是我做到的:
第二种解决方案更复杂,更难以正确;所以,如果可以的话,单身人士很棒并且考虑使用像supervisord这样的东西,以确保如果由于某种原因出现故障,该过程将重新启动。