排程端點
排程是一種工具,可用於每天自動執行一次批次分段工作。 您可以使用 /config/schedules
端點可擷取排程清單、建立新排程、擷取特定排程的詳細資料、更新特定排程或刪除特定排程。
快速入門
本指南中使用的端點屬於 Adobe Experience Platform Segmentation Service API。 在繼續之前,請檢閱 快速入門手冊 如需成功呼叫API所需的重要資訊,包括必要的標題以及如何讀取範例API呼叫。
擷取排程清單 retrieve-list
您可以透過向以下網站發出GET請求,擷取組織的所有排程清單: /config/schedules
端點。
API格式
此 /config/schedules
端點支援數個查詢引數,以協助篩選結果。 雖然這些引數是選用的,但強烈建議使用這些引數來協助減少昂貴的額外負荷。 在不使用引數的情況下呼叫此端點將會擷取您的組織可用的所有排程。 可包含多個引數,以&符號(&
)。
GET /config/schedules
GET /config/schedules?start={START}
GET /config/schedules?limit={LIMIT}
{START}
{LIMIT}
要求
下列請求將擷取您組織內張貼的最後10個排程。
curl -X GET https://platform.adobe.io/data/core/ups/config/schedules?limit=10 \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
回應
成功的回應會傳回HTTP狀態200,其中包含指定組織的排程清單,格式為JSON。
{
"_page": {
"totalCount": 10,
"pageSize": 1
},
"children": [
{
"id": "4e538382-dbd8-449e-988a-4ac639ebe72b",
"imsOrgId": "{ORG_ID}",
"sandbox": {
"sandboxId": "28e74200-e3de-11e9-8f5d-7f27416c5f0d",
"sandboxName": "prod",
"type": "production",
"default": true
},
"name": "Batch Segmentation",
"state": "active",
"type": "batch_segmentation",
"schedule": "0 0 1 * * ?",
"properties": {
"segments": []
},
"createEpoch": 1573158851,
"updateEpoch": 1574365202
}
],
"_links": {
"next": {}
}
}
_page.totalCount
_page.pageSize
children.name
children.type
children.properties
children.properties.segments
["*"]
可確保納入所有區段。children.schedule
children.state
建立新排程 create
您可以透過向以下網站發出POST請求來建立新排程: /config/schedules
端點。
API格式
POST /config/schedules
要求
curl -X POST https://platform.adobe.io/data/core/ups/config/schedules \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
-d '
{
"name":"profile-default",
"type":"batch_segmentation",
"properties":{
"segments":[
"*"
]
},
"schedule":"0 0 1 * * ?",
"state":"inactive"
}'
name
type
properties
properties.segments
type
等於"batch_segmentation"。 使用 ["*"]
可確保納入所有區段。schedule
如果未提供此字串,則會自動產生系統產生的排程。
state
回應
成功的回應會傳回HTTP狀態200以及您新建立排程的詳細資料。
{
"id": "4e538382-dbd8-449e-988a-4ac639ebe72b",
"imsOrgId": "{ORG_ID}",
"sandbox": {
"sandboxId": "e7e17720-c5bb-11e9-aafb-87c71c35cac8",
"sandboxName": "prod",
"type": "production",
"default": true
},
"name": "{SCHEDULE_NAME}",
"state": "inactive",
"type": "batch_segmentation",
"schedule": "0 0 1 * * ?",
"properties": {
"segments": [
"*"
]
},
"createEpoch": 1568267948,
"updateEpoch": 1568267948
}
擷取特定排程 get
您可以透過向以下網站發出GET請求,擷取有關特定排程的詳細資訊: /config/schedules
端點,並提供您要在請求路徑中擷取之排程的ID。
API格式
GET /config/schedules/{SCHEDULE_ID}
{SCHEDULE_ID}
id
要擷取之排程的值。要求
curl -X GET https://platform.adobe.io/data/core/ups/config/schedules/4e538382-dbd8-449e-988a-4ac639ebe72b
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
回應
成功的回應會傳回HTTP狀態200,其中包含指定排程的詳細資訊。
{
"id": "4e538382-dbd8-449e-988a-4ac639ebe72b",
"imsOrgId": "{ORG_ID}",
"sandbox": {
"sandboxId": "e7e17720-c5bb-11e9-aafb-87c71c35cac8",
"sandboxName": "prod",
"type": "production",
"default": true
},
"name": "{SCHEDULE_NAME}",
"state": "inactive",
"type": "batch_segmentation",
"schedule": "0 0 1 * * ?",
"properties": {
"segments": [
"*"
]
},
"createEpoch": 1568267948,
"updateEpoch": 1568267948
}
name
type
batch_segmentation
和 export
.properties
properties.segments
["*"]
可確保納入所有區段。schedule
state
active
和 inactive
. 依預設,狀態會設為 inactive
.更新特定排程的詳細資料 update
您可以透過向以下專案發出PATCH請求來更新特定排程: /config/schedules
端點,並提供您嘗試在請求路徑中更新的排程ID。
PATCH請求可讓您更新 state 或 cron排程 適用於個別排程。
更新排程狀態 update-state
您可以使用JSON修補程式操作來更新排程的狀態。 要更新狀態,您需要宣告 path
屬性為 /state
並設定 value
為 active
或 inactive
. 如需JSON修補程式的詳細資訊,請參閱 JSON修補程式 檔案。
API格式
PATCH /config/schedules/{SCHEDULE_ID}
{SCHEDULE_ID}
id
要更新的排程值。要求
curl -X PATCH https://platform.adobe.io/data/core/ups/config/schedules/4e538382-dbd8-449e-988a-4ac639ebe72b \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
-d '
[
{
"op": "add",
"path": "/state",
"value": "active"
}
]'
path
path
至「/state」。value
回應
成功的回應會傳回HTTP狀態204 (無內容)。
更新cron排程 update-schedule
您可以使用JSON修補程式操作來更新cron排程。 若要更新排程,您需要宣告 path
屬性為 /schedule
並設定 value
至有效的cron排程。 如需JSON修補程式的詳細資訊,請參閱 JSON修補程式 檔案。 如需cron排程的詳細資訊,請參閱 cron運算式格式.
API格式
PATCH /config/schedules/{SCHEDULE_ID}
{SCHEDULE_ID}
id
要更新的排程值。要求
curl -X PATCH https://platform.adobe.io/data/core/ups/config/schedules/4e538382-dbd8-449e-988a-4ac639ebe72b \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
-d '
[
{
"op":"add",
"path":"/schedule",
"value":"0 0 2 * * ?"
}
]'
path
path
至 /schedule
.value
回應
成功的回應會傳回HTTP狀態204 (無內容)。
刪除特定排程
您可以透過向以下傳送DELETE請求,請求刪除特定排程: /config/schedules
端點,並在請求路徑中提供您要刪除之排程的ID。
API格式
DELETE /config/schedules/{SCHEDULE_ID}
{SCHEDULE_ID}
id
要刪除之排程的值。要求
curl -X DELETE https://platform.adobe.io/data/core/ups/config/schedules/4e538382-dbd8-449e-988a-4ac639ebe72b \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
回應
成功的回應會傳回HTTP狀態204 (無內容)。
後續步驟
閱讀本指南後,您現在已更瞭解排程的運作方式。
附錄 appendix
下列附錄說明排程中使用的cron運算式格式。
格式
cron運算式是包含6或7個欄位的字串。 運算式看起來類似下列內容:
0 0 12 * * ?
在cron運算式字串中,第一個欄位代表秒,第二個欄位代表分鐘,第三個欄位代表小時,第四個欄位代表月份的日期,第五個欄位代表月份,第六個欄位代表星期幾。 您也可以選擇加入第七個欄位,代表年份。
, - * /
, - * /
, - * /
, - * ? / L W
, - * /
, - * ? / L #
, - * /
SUN
等於使用 sun
.允許的特殊字元代表下列含義:
*
*
在「小時」欄位中意思是 每 小時。?
3
在「日期」欄位中和 ?
在一週中的第幾天欄位中。-
9-15
在時數欄位中,這表示時數會包含9、10、11、12、13、14和15。,
MON, FRI, SAT
在「星期」欄位中,這表示一週的天數包括星期一、星期五和星期六。/
/
決定從何處遞增,而值則放在 /
會決定其增加多少。 例如,如果您將 1/7
在分鐘欄位中,這表示分鐘會包含1、8、15、22、29、36、43、50和57。L
Last
,而且根據其使用的欄位會有不同的含義。 若與月份的日期欄位搭配使用,表示月份的最後一天。 如果單獨與一週中的某天欄位一起使用,則代表一週中的最後一天,即星期六(SAT
)。 若與「星期」欄位搭配使用,並搭配其他值,則代表該月該型別的最後一天。 例如,如果您將 5L
在一週中的某天欄位中,它會 僅限 包含該月的最後一個星期五。W
18W
在月份欄位中,當月18日是星期六,則會在17日(星期五)觸發,這是最接近的工作日。 若該月18日是星期日,則會在19日星期一觸發,亦即最接近的工作日。 請注意,如果您將 1W
在「月份」欄位中,如果最近的工作日是上個月,則事件仍會在最近的工作日觸發。 目前 月。此外,您也可以結合
L
和 W
進行 LW
,會指定該月的最後一個工作日。#
#
表示一週中的第幾天,而值置於以下日期之後: #
代表每個月的具體值。 例如,如果您將 1#3
,事件便會在當月的第三個星期日觸發。 請注意,如果您將 X#5
而且該月沒有該周第五個事件,該事件將 非 觸發。 例如,如果您將 1#5
,而且該月沒有第五個星期日,事件將 非 觸發。範例
下表顯示cron運算式字串範例,並說明其意義。
0 0 13 * * ?
0 30 9 * * ? 2022
0 * 18 * * ?
0 0/10 17 * * ?
0 13,38 5 ? 6 WED
0 30 12 ? * 4#3
0 30 12 ? * 6L
0 45 11 ? * MON-THU