run(port=8008, debug=False, max_num_threads=4, in_background=None, reload_source_changes=None, max_in_memory_file_upload_size=None, max_request_size=None, settings=None, ports=[])
-
サーバーを起動し、着信したHTTP接続のポートをリッスン(受信)し、事前に登録済みのURLハンドラーとAPIハンドラーをコールします。
-
in_background
がTrueでない時にhython
からサーバーを起動した場合は、ターミナルで(LinuxとMacの場合だと)⌃ Ctrl + C、Windowsの場合だと⌃ Ctrl + Break/⌃ Ctrl + ScrLkを押すことでサーバーを停止することができます。
port
リッスンするポート番号。 このポートが既に使用中またはプロセスがリッスンを許可されていない場合、この関数はhou.OperationFailedを引き起こします。
debug
これがTrue
の場合、サーバーはコンソールログメッセージを書き出し、リクエストを処理した時に引き起こされたPython例外のスタックトレースを表示します。
さらに、レスポンスのボディ内にそのスタックトレースを返します。
hython
でサーバーを起動した場合、これはreload_source_changes
もTrue
に設定します。
hou.webServer.isInDebugMode()を使用することで、サーバーがデバッグモードで起動されているかどうかをチェックすることができます。
max_num_threads
同時リクエストを処理する際に生成される同時ワーカースレッドの最大個数。
hou
パッケージでは、どのコールもグローバルロックを取得し、Pythonハンドラー関数は必ずGILを取得しなければならないので、通常ではハンドラーは同時に実行することができません。
静的ファイルの提供、または、Houdiniを必要としないPythonからのブロッキングI/Oオペレーションの作成をする場合には、マルチスレッドの目玉である速度面のメリットが得られます。
in_background
この関数に別スレッドでサーバーを起動させるかどうか。
in_background=False
を与えると、サーバーを中断しない限り、または、サーバーコードがhou.webServer.requestShutdown()をコールしない限り、この関数は決して戻りません。
in_background
がNone(デフォルト値)の場合、グラフィカルHoudiniセッションではTrue
に、それ以外ではFalse
に設定されます。
reload_source_changes
これがTrue
の場合、サーバーは、読み込まれたすべてのPythonソースファイルを監視し、それらのファイルのどれかが変更される度にサーバーを再起動します。
これによって、手動でサーバーを停止して再起動することなく、Pythonコードを編集してその結果を確認することができます。
max_in_memory_file_upload_size
一時ファイルに書き出すのではなくメモリに保持されるアップロードファイルの最大サイズ(単位はバイト)。 デフォルトでは、サーバーは2.5MB以下のアップロードファイルをメモリに保持しますが、それより大きいファイルはディスクに書き出します。 この引数によって、その閾値を上書きすることができます。
max_request_size
HTTPリクエストの最大サイズ(単位はバイト)。
これがNone
の場合、デフォルト値は3GBです。
settings
Webサーバーに設定を追加する設定ファイルを指定します。 現在のところ、ここにはCORSホワイトリストのみ指定可能です。 これは、Django設定ファイルと同様に動作します。
ports
サーバーがリッスンする追加ポート。
See also |