web.pyのスレッド間でオブジェクトを共有する必要があります。計算を実行して値を返す Web サービスを実行しています。かなりの量のメモリを消費するオブジェクトを使用して計算が行われるため、リクエストごとに作成する必要はありません。
私は正常に動作するソリューションを持っていますが、スケーリングしていないようです:
import web
urls = ('/', 'index')
class index:
def GET(self):
...
result = web.myObject.DoCalculation()
return result
if __name__ == "__main__":
app = web.application(urls, globals())
web.MyObject = LoadObjectFromFile
app.run()
web.pyは自動的に 10 個のスレッドを開きますが、この数は固定されており、非常に制限されています。それを変更できますか?
web.py インストール ガイドでは、flup + LightTPDやApacheなどのサーバーを使用することを推奨しています。必要な共有オブジェクト機能を保持したまま、これを行うことはできますか? 誰でも方法を教えてもらえますか?
flupをインストールし、サーバー起動時のコマンド ライン パラメータとして「 fcgi 」を追加しました。これにより、スレッド(無制限の数)に関して望ましい動作が得られましたが、もちろん、タスクは実行されませんでした。fcgiサーバーを定義する必要があると思います。LightTPDまたはApacheを実行せずにこれを修正できますか?