On this page |
コマンドチェーン
このノードは、汎用コマンドサーバーを起動するワークアイテムを生成します。 これは、Command Server Endノードで終了するブロックのBeginノードです。
-
このブロックの間では、このサーバーは実行中のままで、コマンドを受け取る準備をします。
-
このブロックの中でCommand Sendノードを使用することで、サーバーと通信することができます。ブロック内のワークアイテムは(並列ではなく)直列に順々に実行されます。
-
セッションの最後のワークアイテムが終了すると、Command Server Endノードがサーバーをシャットダウンします。
-
オプションで、複数のサーバーを並列でスケジュールに組んだり、同一サーバー内で複数の直列セッションを"ループ"させることができます。 Session Count from Upstream Items と Number of Sessions のパラメータを参照してください。
コマンドチェーンの使い方の詳細は、コマンドサーバーを参照してください。
サーバーを実装する方法
"汎用的な"サーバーは、あなた独自の単純なサーバーを実装できるように設計されています。Generic Serverノードは2つのプロトコルに対応しています:
-
XML/RPCは、HTTP経由でXMLのスニペットを送受信する"リモート関数コール"インターフェースを備えたプロトコルです。Python標準ライブラリに同梱されているライブラリ(Python2.7だと
SimpleXMLRPCServer
、Python3だとxmlrpc.server
)を使ってXML/RPCサーバーを実装することができます。 -
"Raw TCP"。これは、
telnet
のようなローレベルの"送信/受信"インターフェースを備えています。Python標準ライブラリのsocketserver.TCPServer
クラスを使ってTCPサーバーを実装することができます。
Server Command パラメータには、サーバーを起動するコマンドラインを指定します。ホスト名とポート番号を渡す方法に関しては、パラメータのヘルプを参照してください。
TOP Attributes
|
str |
|
|
[int] |
このアトリビュートは、Feedback Beginノードから継承されます。 これは、ループに関連付けられた一連のワークアイテムをループさせる反復回数です。
入れ子のフィードバックループを使用する時は、レベル毎に反復回数を指定したいので、このアトリビュートには配列値を指定することができます。
一番外側のループのループ反復値は |
|
int |
このアトリビュートは、Feedback Beginノードから継承されます。 ワークアイテムがどのループに関連しているのかを追跡します。 このアトリビュートは、同じFeedback Beginノード内で複数の独立したループを生成させる時に関係します。 例えば、Wedgeノードを使ってFeedback Beginノードを駆動させる時です。 |
|
int |
このアトリビュートは、Feedback Beginノードから継承されます。 このアトリビュートは、ループの合計の反復回数です。 |
パラメータ
Work Item Generation
このノードが静的または動的なワークアイテムのどちらを生成するかどうか。 このノードのワークアイテムが静的に計算可能かどうか、もしくは、動的に生成させる必要があるかどうか分からないのであれば、通常では、これを"Automatic"のままに設定してください。
Dynamic
このノードが常に動的なワークアイテムを生成します。つまり、上流のワークアイテムが判明するまで待機し、その上流のワークアイテムから新しいワークアイテムを生成します。
Static
このノードが常に静的なワークアイテムを生成します。つまり、ネットワークを実行する前にパラメータ(と上流の静的なワークアイテム)に基づいて必要だと思われるだけの数のワークアイテムを生成します。
Automatic
入力が静的(静的なプロセッサ、静的な入力のみを使ったパーティショナー、マッパー)な場合、このノードは静的なワークアイテムを生成し、そうでない場合、動的なワークアイテムを生成します。
Session Count from Upstream Items
これを有効にすると、このノードは単一のサーバーインスタンスを生成し、入力のワークアイテム毎に1回だけ直列でブロックをループします。 これを無効にすると、このノードは入力のワークアイテム毎に並列でサーバーインスタンスを生成します(そして、 Number of Sessions パラメータを使って、インスタンスあたりのセッションループの回数を指定することができます)。
Number of Sessions
Session Count from Upstream Items が無効な時、ここには、サーバーインスタンスあたりのセッションブロックのループ回数を指定します。 各セッションループは直列に実行されます。
Copy Inputs For
入力ファイルをループアイテムにコピーさせる方法を決定します。 デフォルトでは、上流のファイルがすべての入力ファイルにコピーされますが、1回目のループだけ入力ファイルをコピーすることも何もコピーしないこともできます。
No Iterations
上流の入力ファイルをどのループ反復アイテムの出力にもコピーしません。
First Iteration
上流の入力ファイルを1回目のループの出力ファイルリストにのみコピーします。
All Iterations
上流の入力ファイルをすべてのループの出力ファイルリストにコピーします。
Append Index to Server Name
サーバーの並列インスタンス毎に Shared Server Name の名前の後に現行ワークアイテムインデックスを付けます(例えば、shareserver
→ sharedserver0
, sharedserver1
など)。
これは、並列インスタンス間での名前の干渉を回避します。
Server Port
サーバーと紐付けるTCPポート番号( Connect To Existing Server が無効な時)、 または 既存サーバーに接続する際に使用するポート番号( Connect To Existing Server が有効な時)。
デフォルト値の0
は、システム側で動的に未使用のポート番号を選択するように指示します。
通常では期待したポート番号が選択されます。
特定の範囲内でポート番号を維持したいのであれば(利用可能なポート番号を保証したいのであれば)、ここに9000 + @pdg_index
などのエクスプレッションを使用することができます。
この値をサーバー起動スクリプトに渡す方法に関しては、 Server Command パラメータのヘルプを参照してください。
UNIXシステムでは、0-1023のポート番号はスーパーユーザにしか割り当てることができないので、おそらく1023よりも大きいポート番号を選択する必要があることに注意してください。
Protocol
Command Sendノードがサーバーと通信する方法。T 選択肢は"XML/RPC"または"Raw TCP"です。上記のサーバーの実装方法を参照してください。
Connect To Existing Server
これを有効にすると、ワークアイテムは、新しいサーバープロセスを起動するのではなくて、ホストアドレスの既存サーバーに接続されます。 これは、アセット管理システムなどの中央サーバーに接続するのに役立ちますが、必ずサーバーへのアクセスをシリアライズしてください。
Server Address
Connect to Existing Server が有効な時、ここには接続先のサーバーのホストアドレスを指定します。 Server Port パラメータには、既存サーバーに使用されているポート番号を設定してください。
Load Timeout
共有サーバーインスタンスに到達可能であるかどうかを初期検証する時に使用するタイムアウト。 通信に成功せずにこのタイムアウトが過ぎると、そのサーバーのワークアイテムが失敗としてマークされます。
Server Command
サーバーを起動する際に実行するコマンド。 このコマンドラインは、リモートサーバー上で実行すると動作するので、おそらく共有ネットワークファイルシステム上の既知の場所にスタートスクリプトを配置したいことでしょう。
以下のパラメータを使用することで、このノードで作成されるワークアイテムのアトリビュートの名前をカスタマイズすることができます。
Iteration
ワークアイテムの反復回数を格納するアトリビュートの名前。
Number of Iterations
合計の反復回数を格納するアトリビュートの名前。
Loop Number
ループ番号を格納するアトリビュートの名前。
Examples
The following examples include this node.
example_top_genericcommandchain
このサンプルでは、汎用コマンドチェーンを作成する方法について説明しています。
See also |