| 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ワークアイテムオブジェクトを作成する時にサブミッターからアイテムデータを要求します。
このパラメータオプションは、データファイルをディスクに書き出す必要性がないので、ローカルマシンとリモートマシンがファイルシステムを 共有しない 時に役立ちます。
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は、必要な出力とは異なるファイルを検索し、それらのファイルは自動的に実際の出力ファイルとして追加されます。
Block on Failed Work Items
有効にすると、スケジューラ上で失敗したワークアイテムが存在すれば、クックの完了がブロックされ、PDGグラフのクックを終了できなくなります。 これによって、手動で失敗したワークアイテムを再試行することができます。 スケジューラのクックが失敗したワークアイテムによってブロックされると、ESCキーを押したり、TOP Tasksバーの Cancel Current cook ボタンをクリックしたり、キャンセルAPIメソッドを使用することで、そのスケジューラのクックを キャンセル することができます。
Scheduling
Schedule
onSchedule Callback
ワークアイテムのスケジュールを組む必要がある時にコールされます。 ワークアイテムのスケジュールを組むことに成功すればTrueを返します。
Schedule Static
onScheduleStatic Callback
静的なディペンデンシーグラフを処理する時にコールされます。
Submit As Job
submitAsJob Callback
スケジューラがTOPネットワーク全体をスタンドアローンのジョブとしてクックする時にコールされます。 投入されたジョブのステータスURIを返します。
Initialization and Cleanup
Start
onStart Callback
このスケジューラがPDGに登録された時にコールされます。 スケジューラステートを初期化またはセットアップしてください。
Stop
onStop Callback
このスケジューラがPDGから登録解除された時にコールされます。 スケジュラーステートをクリーンアップしてください。
Start Cook
onStartCook Callback
ワークアイテムのスケジュールが組まれる前のクックが開始された時にコールされます。 クックがキャンセルされたらFalseを返し、そうでないならTrueを返します。
Stop Cook
onStopCook Callback
クックが完了またはキャンセルされた時にコールされます。 戻り値は無視されます。
Shared Server
Logging
Log URI
getLogURI Callback
指定したワークアイテムのログを指したURI(例えば、file:///myfarm/tasklogs/jobid20.log)を返します。
Status URI
getStatusURI Callback
指定したワークアイテムのステータスを指したURI(例えば、http://myfarm/status/jobid20)を返します。
| See also |