Gunicorn 与多个工人:有没有一种简单的方法可以只执行一次某些代码?
Posted
技术标签:
【中文标题】Gunicorn 与多个工人:有没有一种简单的方法可以只执行一次某些代码?【英文标题】:Gunicorn with multiple workers: Is there an easy way to execute certain code only once? 【发布时间】:2014-07-28 21:33:20 【问题描述】:如果我以 -w 4
启动 gunicorn 并使用包含内容的应用程序
print 'hello'
它将打印四次'hello'
。有没有办法以只打印一个'hello'
的方式进行协调?我想在开始时进行一些清理,我希望只执行一次。
【问题讨论】:
嘿@ben,你实施了 Eevee 的解决方案吗?你介意张贴吗? 嘿@MatthewMoisen。我编辑了 Eevee 的答案以包含我的实现。 【参考方案1】:您可以写一个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”,尽管指定使用两个工作人员。
【讨论】:
以上是关于Gunicorn 与多个工人:有没有一种简单的方法可以只执行一次某些代码?的主要内容,如果未能解决你的问题,请参考以下文章