Django应用程序的入口点,它只是一个redis订阅循环,不需要访问模型url/view

2024-05-17 17:56:44 发布

您现在位置:Python中文网/ 问答频道 /正文

目前,我有一个外部的非Django python进程,这是一个简单的redis订阅循环,它只需将接收到的消息执行munge操作,并将结果插入用户邮箱(redis list),我的主应用程序会根据请求访问该邮箱。在

我的监听器现在需要访问模型,所以(对我来说)让它成为Django应用程序是有意义的。但是,作为一个循环,我认为最好将其作为一个单独的进程运行。在

编辑:删除了我自己提出的解决方案,使用AppConfig.ready准备就绪()并通过gunicorn运行单独的进程。在

我做的很简单,但我有点困惑,这个应用程序的入口点应该在哪里。有什么想法吗?在

如有任何帮助/建议,我们将不胜感激

-斯科特


Tags: django用户模型redis应用程序消息编辑进程
1条回答
网友
1楼 · 发布于 2024-05-17 17:56:44

我继续使用@DanielRoseman的建议,并使用管理命令作为入口点。

我只添加了一个管理命令“runsubscriber”,看起来如下:

我的应用程序/管理/命令/redis_subscriber.py

def handle(self, *args, **options):
   rsl = RedisSubcribeLoop()
   try:
      rsl.start()
   except KeyboardInterrupt:
      rsl.stop()

现在我可以通过单独的流程运行这个过程/manage.pyrunsubscriber 然后用^C杀死它。my^{cd1>}看起来如下:

myapp/redis\u订阅_循环.py

^{pr2}$

这样它就可以干净地关闭了。

谢谢你的帮助

-斯科特

相关问题 更多 >