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

时间:2016-09-21 14:20:06

标签: django uwsgi

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

目前,我每次启动新工作时都会执行此设置任务,但这显然不是最理想的。设置任务是从同一个Django项目调用方法,但我认为这不会改变问题。

有没有办法从uWSGI做到这一点?

1 个答案:

答案 0 :(得分:0)

您可以尝试使用单一方法,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