【发布时间】:2015-04-03 18:45:43
【问题描述】:
我正在运行 apache,并在 2 个不同的进程中启用了 django 和 mod_wsgi。
我读到第二个进程是一个变化监听器,用于在变化时重新加载代码,但由于某种原因,我的 AppConfig 类的 ready() 函数被执行了两次。这个函数应该只运行一次。
我知道使用 --noreload 标志运行 django runserver 将解决开发模式下的问题,但我无法在我的 apache 网络服务器上的生产模式下找到解决方案。
我有两个问题:
如何在生产中只运行一个进程或至少让一个进程运行
ready()函数?有没有办法让
ready()函数不在惰性模式下运行?我的意思是只在服务器启动时执行,而不是在第一次请求时执行。
为了进一步解释,我遇到的情况如下:
ready() 函数创建一个文件夹侦听器,例如pyinotify。该侦听器将侦听我服务器上的文件夹并将任何更改的任务排入队列。
我看到此侦听器对受监视目录中的单个文件的任何更改执行了两次。这让我相信两个进程都在运行我的监听器。
【问题讨论】:
标签: django python-2.7 apache2 mod-wsgi pyinotify