[英]Python WSGI deployment on Windows for CPU-bound application
在Windows上部署CPU綁定的Python-WSGI應用程序時,我有哪些選擇?
該應用程序受益於多個CPU(圖像處理/編碼),但GIL阻止了它們使用它們。
我的理解是:
mod_wsgi在Windows上不支持WSGIDaemonProcess,Apache本身僅運行一個進程
所有基於fork的解決方案(flup,spawning,gunicorn)僅適用於UNIX
我還有其他部署選項嗎?
PS:我在serverfault上問過,但是有人建議在這里問。
我已成功使用isapi-wsgi在Windows IIS上部署WSGI Web應用程序(我假設由於您是在Windows上進行部署,因此IIS是一個選擇)。
創建一個IIS應用程序池來承載您的應用程序並將其配置為Web Garden(“屬性” |“性能” |“最大工作進程”數)。
免責聲明:我從未親自使用過此功能(我一直使用默認的App Pool配置,其中工作進程的最大數量為1)。 但是據我了解,這將啟動更多進程來處理請求。
可能會有些混亂,但是您可以使用子流程模塊自行觸發工作進程。 我很確定Popen.wait()和/或Popen.communicate()應該釋放GIL。 但是,您仍然需要創建流程,因此您可能無法從標准CGI中獲得很多收益。
另一個選擇是讓單獨的服務器/工作進程始終運行並使用某種形式的IPC,盡管這並不是一個簡單的選擇。 看一下多處理模塊,可能還有Pyro。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.