Django 启动uwsgi应用程序时执行一次任务

Django 启动uwsgi应用程序时执行一次任务,django,uwsgi,Django,Uwsgi,我正在生产系统中使用Debian 8上的uwsgi皇帝。对于一个特定的Django项目,我只需要在vassal启动时运行一次计算密集型设置任务。附庸可以有多个工作者/线程,但无论产生多少工作者/线程,任务只能执行一次 目前,每次启动新的辅助进程时,我都会执行此设置任务,但这显然是次优的。安装任务是从同一个Django项目调用一个方法,但我认为这不会改变问题 从uWSGI有什么方法可以做到这一点吗?您可以尝试使用单音方法,settings.py中的代码将只调用startup\u only\u on

我正在生产系统中使用Debian 8上的uwsgi皇帝。对于一个特定的Django项目,我只需要在vassal启动时运行一次计算密集型设置任务。附庸可以有多个工作者/线程,但无论产生多少工作者/线程,任务只能执行一次

目前,每次启动新的辅助进程时,我都会执行此设置任务,但这显然是次优的。安装任务是从同一个Django项目调用一个方法,但我认为这不会改变问题


从uWSGI有什么方法可以做到这一点吗?

您可以尝试使用单音方法,settings.py中的代码将只调用startup\u only\u once()函数一次:

from tendo.singleton import SingleInstance


def startup_only_once():
    print("One time only")


try:
    FIRST_START = SingleInstance()
    startup_only_once()
except:
    pass

您可以尝试使用单音方法,settings.py中的这段代码将只调用startup_only_once()函数一次:

from tendo.singleton import SingleInstance


def startup_only_once():
    print("One time only")


try:
    FIRST_START = SingleInstance()
    startup_only_once()
except:
    pass

你试过这里贴的建议了吗?@rafa he是的,基本上,这和我使用的方法是一样的。在有多个工作人员的生产服务器上工作时,初始化代码会运行多次,这就是我想要避免的。您是否尝试过此处发布的建议:?@rafa he是的,基本上,这与我使用的方法相同。在具有多个工作线程的生产服务器上工作时,初始化代码会运行多次,这正是我想要避免的问题:requirement tendo
pip install tendo
requirement tendo
pip install tendo