gpt4 book ai didi

python - Django 应用程序的入口点,它只是一个需要访问模型的 redis 订阅循环 - 没有 urls/views

转载 作者:可可西里 更新时间:2023-11-01 11:30:20 25 4
gpt4 key购买 nike

目前有一个外部非 Django python 进程,它是一个简单的 redis 订阅循环,它简单地处理它收到的消息并将结果插入用户邮箱( redis 列表),我的主要应用程序根据请求访问它。

我的监听器现在需要访问模型,因此(对我而言)将其作为 Django 应用程序是有意义的。然而,作为一个循环,我认为最好将其作为一个单独的进程运行。

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

我正在做的事情非常简单,但我对这个应用程序的入口点应该在哪里感到有点困惑。有什么想法吗?

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

-斯科特

最佳答案

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

我只是添加了一个管理命令“runsubscriber”,如下所示:

my_app/management/commands/redis_subscriber.py

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

我现在可以通过 ./manage.py runsubscriber 将其作为一个单独的进程运行并用 ^C 杀死它。我的 stop() 看起来像:

myapp/redis_subscribe_loop.py

def stop(self):
self.rc.punsubscribe() # unsubscribe from all channels
self.rc.close()

以便它干净地关闭。

谢谢你的帮助,

-斯科特

关于python - Django 应用程序的入口点,它只是一个需要访问模型的 redis 订阅循环 - 没有 urls/views,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41419302/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com