有多个工人的Gunicorn:有一种简单的方法只执行一次某些代码吗?

时间:2014-06-07 23:55:23

标签: python gunicorn worker

如果我使用内容

的应用程序使用-w 4启动gunicorn
print 'hello'

它会打印'hello'四次。有没有办法以这样的方式协调它,只打印一个'hello'?我想在开始时做一些清理,我只想执行一次。

1 个答案:

答案 0 :(得分:8)

您可以编写server hook,例如on_starting,它将在主进程中运行,因此只会发生一次。

我认为这些只有在您使用Python脚本进行配置时才有效,例如在their example中。


(这是OP发言):

对我有用的是创建配置文件" my_conf.py"内容:

def on_starting(server):
     print(1)

然后

gunicorn [...] -w 2 -c my_conf.py &

打印" 1"虽然指定使用两个工作程序,但只在服务器启动时启动一次。