Django 在应用程序启动时运行代码,但不在迁移时运行

Dha*_*oon 6 python django

嗨,我想启动一个在我的应用程序第一次运行时运行的后台线程。我已经使用ready() 应用程序配置的功能实现了它。

class MyappConfig(AppConfig):
    name = 'myApp'
    
    def ready(self):
        try:
            thread = threading.Thread(target=xxxx)
        except:
            pass          
Run Code Online (Sandbox Code Playgroud)

问题是当 Django 运行它的迁移时也会调用这个方法,它不应该。我怎样才能防止这种情况发生。

我曾尝试使用 Django 后台任务,但它根本不会运行该任务

Jul*_*enD 8

如果使用“python manage.py [migrate]”调用脚本,则可以避免执行代码:

import sys
if not 'manage.py' in sys.argv:
    ....
Run Code Online (Sandbox Code Playgroud)