擅长:python、mysql、java
<p>auto-reloader进程被证明是罪魁祸首;autoreload进程得到了与原始进程相同的参数,并经历了相同的初始化过程。解决方案是,只有在autoreloader生成的进程中没有运行服务器前的代码时才执行,该进程可以通过环境变量检测到:</p>
<pre><code>import os
from django.contrib.staticfiles.management.commands.runserver import Command as RunserverCommand
class Command(RunserverCommand):
def run(self, *args, **options):
if os.environ.get('RUN_MAIN') != 'true':
self.stdout.write('About to start running on ' + self.addr)
super(Command, self).run(*args, **options)
</code></pre>