Loading
Salesforce から送信されるメールは、承認済ドメインからのみとなります続きを読む

SOAP API ガイドに記載されている非同期 Apex ジョブのリスト

公開日: Oct 13, 2022
説明
※この記事は英語版を翻訳しており、一部機械翻訳を含むため内容は後日更新される可能性があります。最新の内容は英語版を参照してください。表示言語は画面右下の言語名から切り替えられます。

Salesforce では、AsyncApexJob テーブルのレコードは、リソースが利用可能なときに非同期的に実行される Apex ジョブを表しています。このような非同期 Apex ジョブには、たとえば Future メソッド、キュー可能 Apex、Apex の一括処理、スケジュール済み Apex などがあります。AsyncApexJob オブジェクトの SOAP API ガイドを確認すると、JobType 項目の下に上述の非同期ジョブが表示されていますが、ApexToken、TestWorker、TestRequest など、他のジョブタイプも複数表示されています。前述の Future、キュー可能、一括処理、スケジュール済みなどの標準的な非同期ジョブについては広く文書化されていますが、その他のジョブについてはどうでしょうか。 
解決策

AsyncApexJob オブジェクトのドキュメントにあるように、JobType 項目には現在以下の 9 種類の非同期 Apex ジョブがあります。

  • Future
  • SharingRecalculation
  • ScheduledApex
  • BatchApex
  • BatchApexWorker
  • TestRequest
  • TestWorker
  • ApexToken
  • Queueable

以下は、各ジョブの簡単な説明です。
 

JobType説明
 FutureFuture メソッドは、@future メソッドとしてアノテーションされた非同期 Apex メソッドを表わします。Future メソッドは、外部ウェブサービスへのコールアウトなど実行時間の長い操作や、独自のスレッドを必要とし、独自の時間で実行される操作を実行するのに使用されます。
SharingRecalculationSharingRecalculation ジョブは、特定のカスタムオブジェクトの Apex 管理共有を再計算するのに使用される Batch Apex クラス (implements Database.Batchable を使用して Batchable インターフェースを実装するクラス) を表わします。SharingRecalculation は、カスタムオブジェクトの詳細ページからカスタムオブジェクトに関連付け、Recalculate Apex Sharing を使用して開始できます。
ScheduledApexScheduledApex ジョブは、implements Schedulable を介して Schedulabl  インターフェースを使用する非同期 Apex クラスを表わします。スケジュール済み Apex を使用すると、リソースを利用可能な特定の時間に Apex クラスを呼び出せます。
BatchApexBatchApex ジョブは、implements Database.Batchable を介して Batchable インターフェースを使用する非同期 Apex クラスを表わします。Apex の一括処理を使用すると、ジョブを管理可能なチャンクに分割して個別に処理することによって、大量のデータに対し長時間実行されるプロセスを非同期で処理できます。
BatchApexWorkerSalesforce 内部で使用されます。BatchApex タイプの各 AsyncApexJob レコードについて、Apex は、内部使用のために、処理対象のレコード 10,000 件につき BatchApexWorker タイプの AsyncApexJob レコードを 1 つ作成します。すべての AsyncApexJob レコードをクエリする場合は、JobType 項目を使用して BatchApexWorker タイプのレコードを除外し、BatchApex タイプの各 AsyncApexJob レコードに対してレコードが 2 件以上返されないようにすることをお勧めします。
TestRequestApex テスト がUI または Apex コードから非同期で実行されるたびに、JobType を「TestRequest」に設定した親 AsyncApexJob がシステムによって作成されます。お客様は SOQL クエリを実行して、全体的なテスト要求のステータスを確認することもできます
TestWorkerTestWorker ジョブは Salesforce 内部でのみ使用されます。データベースには保存されません。
ApexTokenApexToken ジョブは、Flex キューが有効な組織に使用されます。Winter '16 以降、Flex キューはすべての組織を対象にデフォルトで有効になります。Apex コードブロックが Database.executeBatch() を呼び出した場合、ジョブを Salesforce のキューシステムに直接受け入れるのではなく、ApexToken ジョブがキューに送信されます。 ユーザーが送信する一括処理ジョブに対しては、トークンジョブが内部で作成されます。ただし、一括処理ジョブキューに登録されている一括処理ジョブが最大数に達すると、新しい一括処理ジョブは Flex キューに「保留」状態で格納されます。

ApexToken は、システムリソースを管理するための Salesforce の内部メカニズムです。トークンジョブがシステムによって実行のために取り出されるということは、システムがさらに多くのジョブを Flex キューから受け入れられるということを示唆しています。

注意: それぞれの組織で、ApexToken ジョブの数に上限があります。このトークンメカニズムを使用することで、組織はより多くの一括処理ジョブ (最大 100件) を送信できますが、Salesforce Platform で並行して実行できるのはそのうちの一部のみです。
 QueueableQueueable ジョブは、implements Queueable を介して Queueable インターフェースを使用する非同期 Apex クラスを表わします。Queueable インターフェースを使用すると、非同期 Apex ジョブを管理、監視できます。
ナレッジ記事番号

000387766

 
読み込み中
Salesforce Help | Article