我正在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设置直接冲突的应用程序。
可能只想要太多:)任何人对解决方案有任何想法吗?我看到了一些尝试通过多处理程序获取锁定文件的尝试,但事实证明您得到了一个锁定文件/工作程序。
答案 0 :(得分:0)
我无法正确理解您要实现的目标?如果您还发布错误代码,将会有所帮助。
如前所述,您可以使用Gunicorn preload_app设置运行代码一次,而不是为所有工作程序运行。
现在,您可以使用以下代码在文件更改时重新加载Gunicorn实例:
gunicorn --workers 3 -b localhost:5000 main:app --reload
如果这不是您要查找的内容,请在此处共享错误代码,因为您提到“我看到了通过多处理程序获取锁定文件的一些尝试,但事实证明您找到了锁定文件/工作人员。”我会尽力帮助您。