日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

實現處理器接口和類

一個簡單任務對應一個 handler,支持任務分片及分步:

  • 當需要并發執行并且不關注資源利用率時,可以使用簡單任務的分片功能。

  • 當需要將一個任務分成若干步驟按順序執行時,可以使用簡單任務的分步功能。

實現處理器接口

/**
 * 簡單任務處理器接口
 */
public interface ISimpleJobHandler extends IJobHandler {

    /**
     * 處理request
     *
     * @param context
     * @return
     */
    ClientCommonResult handle(JobExecuteContext context);
}

代碼說明

JobExecuteContext 是觸發任務的請求上下文,可以從里面獲取到任務的一些信息,比如:

  • 在控制臺創建任務時設置的自定義參數,可以通過 getCustomParam(String key) 方法獲取。

  • 如果設置了任務分片,可以通過方法 getSharding() 來獲取當前機器分配到的分片號。

詳細信息,可以查看 com.alipay.antschedulerclient.model.JobExecuteContext 這個類的源碼。

實現類

類里必須實現以下三個方法:

  • handle:在該方法里執行業務邏輯。

  • getThreadPool:獲取一個執行該任務的線程池,如果沒有設置,會使用 Client 自帶的線程池。

    new ThreadPoolExecutor(20,300,1,TimeUnit.HOURS,new ArrayBlockingQueue<Runnable>(100){})
  • getName:獲取這個執行器的名字,這個名字很重要,Client 接收到任務的觸發請求時,會根據名字尋找匹配的執行器。

當任務需要按多個步驟執行時,需要寫多個實現類,并在控制臺開啟分步功能。

代碼示例

public class AlwaysSuccessHandler implements ISimpleJobHandler {

    public static final String NAME = "ALWAYS_SUCCESS_JOB";

    @Override
    public Client CommonResulthandle(JobExecuteContext context) throws InterruptedException {
        //處理業務邏輯
        return ClientCommonResult.buildSuccessResult();
    }

    @Override
    public ThreadPoolExecutor getThreadPool() {
        return null;
    }

    @Override
    public String getName() {
        return NAME;
    }
}