Now Platform でスクリプト可能な送信 REST および SOAP メッセージを処理するときのベストプラクティスIssue 注: 最新情報については、 RESTMessageV2 および SOAPMessageV2 を参照してください。 execute()とexecuteAsync()の比較 スクリプト内で RESTMessageV2 または SOAPMessageV2 を使用している場合、呼び出しの実行に次の 2 つの方法があることにお気づきかもしれません。 execute():このメソッドは呼び出しを同期的に行います。スクリプトを実行すると、呼び出しが完了するまで先に進まず待機します。タイムアウトを非常に短く設定するのでない限り、通常、このメソッドは推奨されていません。executeAsync():このメソッドは呼び出しを非同期的に行います。スクリプトを実行すると、呼び出しの完了を待たずに実行を継続します。呼び出し完了した後にスクリプトの残りの部分が実行されることは保証されていません。 execute() を使用するケースと使用時の要検討事項: このメソッドは、非常に高速なサービスの呼び出しにのみ使用してください。サービスがどれほど高速であっても、大量に呼び出すべきではありません。execute はタイムアウトが非常に短い場合にのみ使用します。他の場合に使用すると、インスタンスを停止させる可能性があります。ここでは、glide.http.timeout および glide.http.connection_timeout という 2 つのプロパティに注目してください。デフォルトの状態 (プロパティテーブルにプロパティが設定されていない) において、これらはそれぞれ 175 秒と 10 秒に設定されています。通常、要求が MID を経由する必要がある場合は、このメソッドを使用しないでください。MID 要求は、最初に非同期キューである ECC キューを経由する必要があります。スレッドは、要求自体によって保留されるだけでなく、MID サーバーからインスタンスへの応答の待機によっても保留されます。MID が関係している場合は、センサービジネスルールにより非同期呼び出しを使用することを強くお勧めします (下の例を参照)。 executeAsync() を使用するケースと使用時の要検討事項: 応答を気にしない場合は、executeAsync (「ファイアアンドフォーゲット」) の使用をお勧めします。要求のサイズが非常に大きい場合、または時間がかかる可能性がある場合。応答が必要な場合は、ecc_queue での応答をリッスンするセンサービジネスルールを設定できます。通常は executeAsync を使用する方が安全です。できるだけ executeAsync をご使用ください。waitForResponse() を executeAsync() に続けて呼び出すと、このメソッドの動作は基本的に、シンプルな execute() と同様になります。そのため、使用する際は、待機時間を非常に短く設定する必要があります。 ファイアアンドフォーゲットでない場合に execute() を executeAsync() に切り替える方法: execute() を使用するスクリプトは、多くの場合以下のようになります。 これを executeAsync を使うよう切り替える場合は、ブロック C を ECC キューに設定されているビジネスルールに移動し、非同期メソッドへの応答を見つけます。 executeAsync() を使用した新しいスクリプト: 新しいセンサービジネスルールのスクリプト (SOAP の参照として「株価の取得の処理」ビジネスルールを参照) - この種のセットアップを使用すると、スレッドにおいて、長時間実行される可能性のあるサービス終了が待機されなくなるため、インスタンスにとってははるかに安全です。