猎鹰/独角兽代码初始化(运行一次),并且有多个工作人员(单身?)

时间:2018-07-30 22:18:45

标签: python-3.x gunicorn falconframework

我正在docker内部使用Falcon 1.4.1和Gunicorn 19.9.0。

在找出初始化应用程序的最佳方法时遇到了麻烦-在启动我的REST API时运行一些代码,而不是每个工作程序一次。我有3个或更多的工作人员在为我的应用程序运行。

我已经尝试过使用枪支弹 on_starting 网络挂钩,但是它仍然每个工人运行一次。在我的gunicorn_conf.py文件中:

def on_starting(server):
    print('Here I am')

我还尝试了现在在生产环境中愉快使用的gunicorn preload_app 设置,该设置确实允许应用程序初始化在启动工作程序之前运行一次。

我希望能够使用gunicorn的 reload 设置,以便文件更改重新启动与preload_app设置直接冲突的应用程序。

可能只想要太多:)任何人对解决方案有任何想法吗?我看到了一些尝试通过多处理程序获取锁定文件的尝试,但事实证明您得到了一个锁定文件/工作程序。

1 个答案:

答案 0 :(得分:0)

我无法正确理解您要实现的目标?如果您还发布错误代码,将会有所帮助。

如前所述,您可以使用Gunicorn preload_app设置运行代码一次,而不是为所有工作程序运行。

现在,您可以使用以下代码在文件更改时重新加载Gunicorn实例:

gunicorn --workers 3 -b localhost:5000 main:app --reload

如果这不是您要查找的内容,请在此处共享错误代码,因为您提到“我看到了通过多处理程序获取锁定文件的一些尝试,但事实证明您找到了锁定文件/工作人员。”我会尽力帮助您。