[Salesforce]Queueable インターフェース

Queueable インターフェースについて共有します。

特徴

・ジョブの監視可

・2つのジョブの連続的な処理可

使用方法

・ Queueable クラス作成

public class MyQueueableClass implements Queueable {

以下はメソッド

public void execute(QueueableContext context) {
    // Your code here
}

・ Queueable クラス呼び出し

ID jobID = System.enqueueJob(new MyQueueableClass());

・ Queueable クラス作成

public class AsyncExecutionExample implements Queueable {     
    public void execute(QueueableContext context) {         
        Account a = new Account(Name='Acme',Phone='(415) 555-1212'); 
        insert a;             
    } 
} 

・ Queueable クラス呼び出し

ID jobID = System.enqueueJob(new AsyncExecutionExample());

・ジョブ監視

AsyncApexJob jobInfo = [SELECT Status,NumberOfErrors FROM AsyncApexJob WHERE Id=:jobID];

・テストクラス

@isTest
public class AsyncExecutionExampleTest {
    static testmethod void test1() {
        // startTest/stopTest block to force async processes 
        //   to run in the test.
        Test.startTest();        
        System.enqueueJob(new AsyncExecutionExample());
        Test.stopTest();
        
        // Validate that the job has run
        // by verifying that the record was created.
        // This query returns only the account created in test context by the 
        // Queueable class method.
        Account acct = [SELECT Name,Phone FROM Account WHERE Name='Acme' LIMIT 1];
        System.assertNotEquals(null, acct);
        System.assertEquals('(415) 555-1212', acct.Phone);
    }
}

投稿者: kinkun

保有資格 Salesforce Certified Platform App Builder T Salesforce Certified Platform Developer I Salesforce Certified Platform Developer II Salesforce Certified Administrator

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です