【发布时间】:2020-08-05 14:16:05
【问题描述】:
我们开发了一个 Flask webapp,并希望将它部署在 IIS 上。在开发过程中,我们通过flask run 启动了应用程序,它启动了我们应用程序的单个实例。然而,在 IIS 上,我们观察到(通过任务管理器)我们的应用程序同时运行多个实例。
问题是我们的应用程序不是为并行运行而设计的。例如,我们的应用程序从文件系统中读取文件并将其保存在内存中以提高效率。只有在保证没有其他进程更改文件内容的情况下,这种优化才是正确的。
有没有办法阻止 IIS 启动多个实例?
【问题讨论】:
-
您是如何在 IIS 上托管 Python 应用程序的?如果你使用 HttpPlatformHandler,它有一个设置ˋprocessesPerApplicationˋ 来运行你的 Flask 应用程序的一个实例,docs.microsoft.com/en-us/iis/extensions/httpplatformhandler/…