排程端點
排程是一種工具,可用於每天自動執行一次批次分段工作。 您可以使用/config/schedules
端點來擷取排程清單、建立新排程、擷取特定排程的詳細資料、更新特定排程或刪除特定排程。
快速入門
本指南中使用的端點是Adobe Experience Platform Segmentation Service API的一部分。 繼續之前,請檢閱快速入門手冊以取得您成功呼叫API所需瞭解的重要資訊,包括必要的標頭以及如何讀取範例API呼叫。
擷取排程清單 retrieve-list
您可以向/config/schedules
端點發出GET要求,以擷取貴組織的所有排程清單。
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
您可以對/config/schedules
端點發出POST要求,以建立新的排程。
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
您可以向/config/schedules
端點發出GET要求,並在要求路徑中提供您想要擷取之排程的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
您可以向/config/schedules
端點發出PATCH要求,並在要求路徑中提供您嘗試更新的排程識別碼,以更新特定排程。
更新排程狀態 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 (無內容)。
刪除特定排程
您可以向/config/schedules
端點發出DELETE要求,並在要求路徑中提供您要刪除之排程的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
。允許的特殊字元代表下列含義:
*
*
放入hours欄位表示每 小時。?
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
,而該月沒有該周的第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