継続を使用した長時間コールアウトの実行

Apex で Continuation クラスを使用して、外部 Web サービスへの長時間要求を行います。コールバックメソッドで応答を処理します。継続はユーザーエクスペリエンスを大幅に向上させることができるため、コールアウトの管理方法として好んで使用されます。

継続を使用すると、コールアウトを並列に実行できるなどのいくつかの利点が得られます。

フレームワークは、アクションをサーバーに送信する前にキューに配置します。コードの記述時のこのメカニズムの大半は透過的ですが、複数のアクションを 1 つの要求 (XHR) にまとめて、フレームワークがネットワークトラフィックを最小限に抑えることができます。アクションの一括処理は、ボックスカーイング (貨車の連結) とも呼ばれ、貨車を連結する列車に似ています。継続は長時間要求になる場合があるため、フレームワークでは基本的にバックグラウンドアクションとして処理されます。継続は他の要求と共にボックスカーに入れられないため、実行中に他のアクションをブロックすることはありません。

継続を使用して実行される非同期コールアウトは、実行時間が 5 秒を超える同期要求の Apex 制限には含まれません。Winter ‘20 以降、すべてのコールアウトは長時間要求の制限から除外されています。そのため、継続は通常のコールアウトと比較して、制限に関する優位性はなくなりました。ただし、ユーザーエクスペリエンスは向上するため、継続を使用してコールアウトを管理することをお勧めしています。

関連トピック