Since | 17.5 |
このノードには、独自のPDGスケジューラ向けPythonコードを記述するためのインターフェースが備わっており、そのインターフェスを使ってワークアイテムのスケジュールを組むことができます。 ベースのスケジューラのコールバックは、機能別にコードが記述されたPythonテキストフィールドとして露出されています。 それぞれのコールバックフィールドは、汎用PDGワークアイテムスケジュールワークフロー間で評価されて実行されます。 SchedulerノードAPIリファレンスでは、実装可能なコールバック関数に関する詳細が説明されています。
Python SchedulerノードをTOPネットワーク内でそのまま使用したり、Save To Pythonボタンを使ってPythonファイルに保存することができます。 Save To Python機能は、コールバックエントリー内の記述と一緒にカスタムスケジューラノードの実装をすべて書き出します。 このPythonファイルがScheduler Factoryによって自動的に取得されて登録されるようにするには、そのファイルをPDG Pythonパス(例えば、/home/username/houdini17.5/pdg/types/)に配置してください。 Houdiniを起動すれば、そのPythonファイルが反映されます。つまり、カスタムSchedulerに変更を加えれば、Houdiniを再起動する必要があります。
一度登録されると、Schedulers下でTabメニューを押してそのカスタムSchedulerノードを選択すると、そのノードが作成されます。 Tabメニューにそれが表示されないのであれば、Houdini起動時にそのPythonファイルが見つからなかったか、または、Pythonファイルにエラーがあります。
パラメータ ¶
Save To Python
このノードをカスタムコールバックエントリーと一緒にPythonファイルに保存します。
Working Directory
ワークが中間ファイルや出力を生成する場所となる相対ディレクトリを指定します。
中間ファイルはサブディレクトリ下に配置されます。
ローカルスケジューラまたはHQueueスケジューラに関しては、通常では$HIP
を使用します。
他のスケジューラに関しては、ここには、Local Shared Root Path
やRemote Shared Root Path
の相対ディレクトリを指定してください。
そのパスは、それらのルートパスに追加されます。
Load Item Data From
このスケジューラで処理されるジョブがワークアイテムのアトリビュートとデータを読み込む方法を決めます。
Temporary JSON File
スケジューラは、ワークアイテム毎に.json
ファイルをPDG一時ファイルディレクトリに書き出します。
このオプションは、デフォルトで有効になっています。
RPC Message
スケジューラが実行するワークアイテムは、RPC経由でアトリビュートとデータを要求します。 このスケジューラがファームスケジューラの場合でも、ファーム上で実行されるジョブスクリプトは、Out-of-Processワークアイテムオブジェクトを作成する時にサブミッターからアイテムデータを要求します。
このパラメータオプションは、データファイルをディスクに書き出す必要性がないので、ローカルマシンとリモートマシンがファイルシステムを 共有しない 時に役立ちます。
Delete Temp Dir
スケジューラに関連付けられている一時ファイルディレクトリをPDGが自動的に削除するタイミングを決めます。
Never
PDGは、その一時ファイルディレクトリを自動的に削除しません。
When Scheduler is Deleted
スケジューラが削除された時、または、Houdiniが閉じた時に、PDGは、その一時ファイルディレクトリを自動的に削除します。
When Cook Completes
クックが完了する度に、PDGは、その一時ファイルディレクトリを自動的に削除します。
Compress Work Item Data
有効にすると、PDGはワークアイテムの.json
ファイルをディスクに書き出す時にそれらのファイルを圧縮します。
このパラメータは、 Load Item Data From が Temporary JSON File に設定されている時にのみ利用可能です。
Validate Outputs When Recooking
有効にすると、グラフが再クックされた時に、PDGは、スケジューラがクックしたワークアイテムの出力ファイルを検証し、それらのファイルがまだディスク上に存在しているかどうかを確認します。 出力ファイルが見つからないワークアイテムは、自動的にDirty(変更あり)となり、再度クックされます。 パラメータの変更によってワークアイテムがDirty(変更あり)となった場合、それらのキャッシュファイルも自動的に無効となります。 Validate Outputs When Recooking はデフォルトで 有効 になっています。
Check Expected Outputs on Disk
有効にすると、PDGは、スケジューラのワークアイテムがクックを終了した時に明示的に報告されなかった不要な出力(例えば、場合によって内部ロジックを処理するカスタム出力が生成してしまう出力など)を検索します。 このチェックは、スケジューラがワークアイテムをクック済みとマークした直後に行なわれ、正常に報告された必要な出力はチェックされません。 PDGは、必要な出力とは異なるファイルを検索し、それらのファイルは自動的に実際の出力ファイルとして追加されます。
Limit Jobs
有効にすると、スケジューラから同時に投入可能なジョブの最大数が設定されます。
TractorやHQueueなどのファームスケジューラの場合、このパラメータを使用して、レンダーファーム自体に投入されるジョブの最大数を制限することができます。 このパラメータを設定することで、特にPDGグラフに膨大な数の小さいタスクが含まれている時にレンダーファームの負荷を制限するのに役立ちます。
Block on Failed Work Items
有効にすると、スケジューラ上で失敗したワークアイテムが存在すれば、クックの完了がブロックされ、PDGグラフのクックを終了できなくなります。 これによって、手動で失敗したワークアイテムを再試行することができます。 スケジューラのクックが失敗したワークアイテムによってブロックされると、ESCキーを押したり、TOP Tasksバーの Cancel Current cook ボタンをクリックしたり、キャンセルAPIメソッドを使用することで、そのスケジューラのクックを キャンセル することができます。
Scheduling ¶
Initialization and Cleanup ¶
Start ¶
onStart Callback
このスケジューラがPDGに登録された時にコールされます。 スケジューラステートを初期化またはセットアップしてください。
Stop ¶
onStop Callback
このスケジューラがPDGから登録解除された時にコールされます。 スケジュラーステートをクリーンアップしてください。
Start Cook ¶
onStartCook Callback
ワークアイテムのスケジュールが組まれる前のクックが開始された時にコールされます。 クックがキャンセルされたらFalseを返し、そうでないならTrueを返します。
Stop Cook ¶
onStopCook Callback
クックが完了またはキャンセルされた時にコールされます。 戻り値は無視されます。
Shared Server ¶
Logging ¶
See also |