您好我想启动第一次运行我的应用程序时运行的后台线程。我已经使用应用程序配置的ready()函数实现了它。
class MyappConfig(AppConfig):
name = 'myApp'
def ready(self):
try:
thread = threading.Thread(target=xxxx)
except:
pass
问题是当Django也运行它的迁移时会调用此方法,但不应该这样做。我怎样才能防止这种情况发生。
我尝试过使用Django后台任务,但它根本不会运行任务
答案 0 :(得分:3)
如果使用“python manage.py [migrate]”调用脚本,则可以避免执行代码:
file_get_contents
答案 1 :(得分:0)
我发现最好的方法是检查runserver
是否在sys.argv
from django.apps import AppConfig
import sys
class config(AppConfig):
name = 'appName'
if 'runserver' in sys.argv:
do_main_thread()
这比manage.py
更好,因为该参数包含在我以前习惯的migrate
,makemigrations
和runserver
的每个命令中。