2

我想创建一个线程(将来可能是一个进程),它继承所有的 django 环境和设置,但开始进行自己的监控。理想情况下,我希望在 Django 服务器完成初始化时触发它。我已经尝试了以下两种方法。第一个似乎在每次发出请求时都运行中间件初始化程序,并且它们都有一个问题,即我的启动代码仅在向服务器发出第一个请求时才被触发。

Django 启动代码放在哪里?

在 Django 设置之后立即运行启动代码?(也适用于命令)

我还看到有人为这个确切的用例检查了一些信号,但它只在 django 1.6 或更高版本中可用。

任何想法如何解决这个问题?

谢谢!

4

1 回答 1

2

我从来没有这样做过,但看起来你可以在 Django admin中注册你自己的命令,所以你可以让你自己的类——也许——从模块中继承 BaseRunserverCommandrunserver.py并重载run方法来触发你的线程或进程.

(当前设置似乎在 BaseRunserverCommand 中可用——请参阅inner_run方法,我假设您可以简单地使用它os.environ来访问当前环境。)

于 2012-11-07T22:02:25.200 回答