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

HTTP任務(Serverless)

更新時間:

SchedulerX 2.0支持調度HTTP任務,包含Serverless、Agent兩種執行方式,通過控制臺配置后即可使用。本文介紹如何在控制臺配置HTTP任務。

HTTP任務簡介

HTTP任務不同執行方式的區別與使用限制如下所示。

執行模式

Serverless

Agent

是否需要接入客戶端

否,請求由SchedulerX發起調用。

是,請求由接入的用戶端發起調用。

請求方式

目前支持GET、POST。

結果解析

HTTP請求返回結果需為JSON格式,服務端通過解析指定Key的值與設定值是否一致判斷本次請求是否成功。

是否支持秒級任務

否,僅支持到分鐘級別。

是。

是否支持內部URL

否,Serverless執行方式下,請求URL需要有公網權限,如果HTTP接口地址的格式為ip:port,需要機器開通公網權限。

是。

任務名解析

如果任務名是中文,后端可通過URLDecode.decode(jobName, "utf-8")解碼。

如何創建HTTP任務

您可以通過GET和POST兩種請求方式,創建HTTP任務。

GET

使用GET請求方式需要在客戶端中添加配置,然后在控制臺中創建任務。

第一步:基本配置

  1. 在客戶端中添加配置GET方法配置。

    相關配置如下所示。關于客戶端接入SchedulerX的詳細步驟,請參見Spring Boot應用接入SchedulerX

    @GET
    @Path("hi")
    @Produces(MediaType.APPLICATION_JSON)
    public RestResult hi(@QueryParam("user") String user) {
        TestVo vo = new TestVo();
        vo.setName(user);
        RestResult result = new RestResult();
        result.setCode(200);
        result.setData(vo);
        return result;
    }
  2. 在控制臺創建HTTP任務。

    HTTP任務GET方法的相關配置如下所示。關于創建調度任務,請參見創建調度任務HTTP Serverles 任務

    Serverless HTTP任務參數說明:

    配置項

    說明

    任務名

    任務名稱。

    描述

    任務描述。簡潔地描述業務,便于后續搜索。

    應用ID

    選擇目標應用。

    任務類型

    指任務所實現的類型,當前支持JavaShellPythonGohttpxxljobDataWorks等類型,其中ShellPythonGo會彈出編輯框,在編輯框中編寫任務腳本。本示例選擇http

    完整的URL

    需要填寫完整的URL,包括http://

    請求方式

    本示例選擇GET

    應答解析模式

    選擇應答解析模式。支持的模式如下:

    • HTTP響應碼

      通過HTTP響應碼應答,您需要設置標準的HTTP請求響應返回Code值。

    • 自定義JSON

      返回校驗Key和返回校驗Value。

      服務端默認HTTP請求結果為JSON格式,根據填寫的Key和Value校驗結果是否成功。

      {
        "code": 200,
        "data": "true",
        "message": "",
        "requestId": "446655068791923614103381232971",
        "success": true
      }

      上方示例代碼可以校驗Key為Success,校驗value:true或者校驗Code是否為200。

    • 自定義字符串

      根據自定義的返回字符串內容是否完全匹配,判斷任務是否執行成功。

    返回校驗Key

    僅支持返回值JSON格式,成功返回校驗Key。

    返回校驗Value

    僅支持返回值JSON格式,成功返回校驗Value。

    執行超時時間(秒)

    serverless:基礎版最大30秒,專業版最大120秒。agent:無限制。

    cookie

    例如key1=val1;key2=val2。多個值用半角分號(;)隔開,最大長度為300字節。

    執行方式

    serverless:由服務端發起請求,需要公網可訪問的URL。

    agent:需要提前部署schedulerxAgent,由客戶端發起請求,可以配置內部URL。(僅支持1.8.2以上的客戶端版本)。部署schedulerxAgent,請參見Agent接入(腳本或HTTP任務)

第二步:定時配置

  1. 定時配置配置向導頁,設置定時參數和高級配置參數,然后單擊下一步

    image

    定時參數說明如下:

    配置名稱

    意義

    時間類型

    • none:無調度方式,一般通過工作流觸發。

    • cron:Cron表達式。

    • api:通過API觸發。

    • fixed_rate:固定頻率。

    • second_delay:秒級固定延遲。

    • onetime:一次性任務。

    cron表達式(僅適用于cron時間類型)

    填寫Cron表達式。可以直接按照Cron語法填寫,也可以使用工具生成并驗證。

    固定頻率(僅適用于fixed_rate時間類型)

    填寫固定頻率,單位為秒,僅支持60秒以上。例如,200表示每200s調度一次。

    固定延遲(僅適用于second_delay時間類型)

    填寫固定延遲,單位為秒。范圍為1秒~60秒。例如,5表示延遲5秒觸發調度。

    當時間類型選擇Cron后,可以進行高級配置。高級配置參數說明如下:

    配置名稱

    說明

    時間偏移

    數據時間相對于調度時間的偏移,可以在調度時從上下文獲取該值。

    時區

    可以根據實際情況選擇不同時區,包括一些常用國家或地區,也包括標準的GMT表達方式。

第三步:通知配置

HTTP任務支持錯誤報警,當出現上述超時以及返回值不符合預期的問題時,您可以在創建任務時設置報警條件,接收相應的報警信息。

  1. 通知配置配置向導頁,設置報警參數及聯系人,然后單擊完成

    創建任務-報警配置

  2. 任務創建成功后,在任務管理頁面的操作列,單擊運行一次

    出現以下結果,表明任務執行成功。Serverless HTTP 任務結果

POST

使用POST請求方式,需要在客戶端中添加配置,然后在控制臺中創建任務。

第一步:基本配置

  1. 在客戶端中添加POST配置。

    POST方法的配置信息如下所示。關于客戶端接入SchedulerX的詳細步驟,請參見Spring Boot應用接入SchedulerX

    import com.alibaba.schedulerx.common.constants.CommonConstants;
    
    @POST
    @Path("createUser")
    @Produces(MediaType.APPLICATION_JSON)
    public RestResult createUser(@FormParam("userId") String userId, 
            @FormParam("userName") String userName) {
        TestVo vo = new TestVo();
        System.out.println("userId=" + userId + ", userName=" + userName);
        vo.setName(userName);
        RestResult result = new RestResult();
        result.setCode(200);
        result.setData(vo);
        return result;
    }
  2. 在控制臺創建HTTP任務。

    HTTP任務相關配置信息如下所示。關于創建調度任務,請參見創建調度任務Serverless HTTP POST

    Serverless HTTP任務參數說明:

    配置項

    描述

    完整的URL

    需要填寫完整的URL,包括http://

    應答解析模式

    選擇應答解析模式。支持的模式如下:

    • HTTP響應碼

      通過HTTP響應碼應答,您需要設置標準的HTTP請求響應返回Code值。

    • 自定義JSON

      返回校驗Key和返回校驗Value。

      服務端默認HTTP請求結果為JSON格式,根據填寫的Key和Value校驗結果是否成功。

      {
        "code": 200,
        "data": "true",
        "message": "",
        "requestId": "446655068791923614103381232971",
        "success": true
      }

      上面的示例代碼可以校驗Key為Success,校驗value:true或者校驗Code是否為200。

    • 自定義字符串

      按您自定義的返回字符串內容完全匹配判斷任務是否執行成功。

    返回校驗key返回校驗value

    服務端默認HTTP請求結果為JSON格式,根據填寫的Key和Value校驗結果是否成功。

    {
      "code": 200,
      "data": "true",
      "message": "",
      "requestId": "446655068791923614103381232971",
      "success": true
    }

    上面的示例代碼可以校驗Key為Success,校驗value:true或者校驗Code是否為200。

    執行超時時間(秒)

    最大30秒,超過會報錯。

    post參數

    POST表單參數,例如key1=val1;key2=val2

    cookie

    例如key1=val1;key2=val2。多個值用半角分號(;)隔開,最大長度為300字節。

    執行方式

    serverless:由服務端發起請求,需要公網可訪問的URL。

    agent:需要提前部署schedulerxAgent,由客戶端發起請求,可以配置內部URL。(僅支持1.8.2以上的客戶端版本)。部署schedulerxAgent,請參見Agent接入(腳本或HTTP任務)

第二步:定時配置

定時配置配置向導頁,設置定時參數和高級配置參數,然后單擊下一步

創建任務-定時配置

定時參數說明如下:

配置名稱

意義

時間類型

  • none:無調度方式,一般通過工作流觸發。

  • cron:Cron表達式。

  • api:通過API觸發。

  • fixed_rate:固定頻率。

  • second_delay:秒級固定延遲。

  • onetime:一次性任務。

cron表達式(僅適用于cron時間類型)

填寫Cron表達式。可以直接按照Cron語法填寫,也可以使用工具生成并驗證。

固定頻率(僅適用于fixed_rate時間類型)

填寫固定頻率,單位為秒,只支持60秒以上。例如,200表示每200s調度一次。

固定延遲(僅適用于second_delay時間類型)

填寫固定延遲,單位為秒。范圍為1秒~60秒。例如,5表示延遲5秒觸發調度。

當時間類型選擇Cron后,可以進行高級配置。高級配置參數說明如下:

配置名稱

意義

時間偏移

數據時間相對于調度時間的偏移,可以在調度時從上下文獲取該值。

時區

可以根據實際情況選擇不同時區,包括一些常用國家或地區,也包括標準的GMT表達方式。

第三步:通知配置

HTTP任務支持錯誤報警,當出現上述超時以及返回值不符合預期的問題時,您可以在創建任務時設置報警條件,接收相應的報警信息。

  1. 通知配置配置向導頁,設置報警參數及聯系人,然后單擊完成

    創建任務-報警配置

  2. 任務創建成功后,在任務管理頁面的操作列,單擊運行一次

    出現以下結果,表明任務執行成功。Serverless HTTP 任務結果

如何獲取任務基本信息

HTTP任務的基本信息在Header中,如需獲取任務的基本信息,需要在客戶端的pom.xml中增加以下依賴。

<dependency>
    <groupId>com.aliyun.schedulerx</groupId>
    <artifactId>schedulerx2-common</artifactId>
    <version>1.6.0</version>
</dependency>

以GET方法為例,通過以下方式獲取任務基本信息。

import com.alibaba.schedulerx.common.constants.CommonConstants;

@GET
@Path("hi")
@Produces(MediaType.APPLICATION_JSON)
public RestResult hi(@QueryParam("user") String user,
        @HeaderParam(CommonConstants.JOB_ID_HEADER) String jobId,
        @HeaderParam(CommonConstants.JOB_NAME_HEADER) String jobName) {
    TestVo vo = new TestVo();
    vo.setName("armon");
    //若JobName是中文,需要進行URLDecode解碼。
    String decodedJobName = URLDecoder.decode(jobName, "utf-8");
    System.out.println("user=" + user + ", jobId=" + jobId + ", jobName=" + decodedJobName);
    RestResult result = new RestResult();
    result.setCode(200);
    result.setData(vo);
    return result;
}

可以獲取的任務基本信息如下所示。

CommonConstants常量

key

value描述

JOB_ID_HEADER

schedulerx-jobId

任務ID。

JOB_NAME_HEADER

schedulerx-jobName

任務名。僅支持英文命名。

SCHEDULE_TIMESTAMP_HEADER

schedulerx-scheduleTimestamp

調度時間的時間戳。

DATA_TIMESTAMP_HEADER

schedulerx-dataTimestamp

數據時間的時間戳。

GROUP_ID_HEADER

schedulerx-groupId

應用ID。

USER_HEADER

schedulerx-user

用戶名。

MAX_ATTEMPT_HEADER

schedulerx-maxAttempt

實例最大重試次數。

ATTEMPT_HEADER

schedulerx-attempt

實例當前重試次數。

JOB_PARAMETERS_HEADER

schedulerx-jobParameters

任務參數。

INSTANCE_PARAMETERS_HEADER

schedulerx-instanceParameters

任務實例參數,需要API觸發。

結果驗證

HTTP任務執行結果在執行列表頁可以進行查詢,關于成功結果,請參見GET

任務執行失敗時,單擊詳情可查看具體失敗原因,如下所示。

  • 返回值和期望不相同返回值和期望不相同

  • 執行超時執行超時