排程的運作方式
排程、時間安排、變更、期間和執行:Metascheduler 背後的概念,以及每個時間點會發生什麼事。
基本元素
排程是日曆上的一個項目,包含名稱、時間安排和一份變更清單。
變更是對一組項目進行的一種編輯:「將這 140 個子類打八折」,或「將主選單換成黑色星期五選單」。每項變更包含:
- 一個變更類型,例如子類價格或導覽選單 (所有類型);
- 它所變更的項目,例如產品、項目或選單;
- 它在開始時做什麼;
- 結束時會發生什麼:還原、設為其他值或保留。
變更會依清單中的順序執行。
時間安排
| 時間安排 | 執行時機 | 結束時 |
|---|---|---|
| 單次 | 在某個日期和時間執行一次。 | 沒有動作:變更會保留,類似 Rollouts 的「上線」。 |
| 期間 | 從開始到結束。 | 每項變更依其結束選項處理,類似 Rollouts 的「活動」。 |
| 重複 | 每日、每週或每月重複的期間。 | 每個期間在各自結束時還原。 |
| 跟隨推出 | Shopify 推出進入使用中時。 | 推出結束時,依您的選擇處理。 |
每個排程都有自己的時區。時間會被精確地儲存,並以排程的時區顯示。
狀態
排程會依序經過下列狀態:
- 草稿:正在設定中,絕不會執行。
- 已排程:等待開始。
- 生效中:變更目前正在套用。
- 已結束:已執行完畢,沒有其他待辦事項。
您也可以暫停排程 (不會開始任何新的變更;生效中的變更仍會在結束時還原),或封存排程 (不會再執行;生效中的變更仍會還原)。已結束或已封存的排程無法編輯:請選取複製,即可再次執行。
開始時會發生什麼事
對於每個項目,Metascheduler 會:
- 讀取目前的值並儲存 (快照);
- 寫入新的值;
- 儲存它寫入的內容。
如果項目已經是該值,就不會寫入任何內容。百分比一律以儲存的值計算,因此重試絕不會打兩次八折。
結束時會發生什麼事
對於每個項目,依變更的結束選項而定:
- 還原:如果目前的值仍是 Metascheduler 寫入的,就放回儲存的值。如果有人改動過,就不會動它,並詢問您。請參閱還原的運作方式。
- 設為其他值:寫入您選擇的結束值。
- 保留:不做任何事。
逾期的執行
Metascheduler 會準時執行每一次開始和結束,且各執行一次。如果無法準時執行 (例如 Shopify 當機),則依下列規則處理:
| 情況 | 處理方式 |
|---|---|
| 開始時間晚了最多 5 分鐘 | 正常執行。 |
| 開始時間晚得更久,但仍在期間內 | 執行,並標示為逾期。 |
| 開始時,其期間已經結束 | 略過,並顯示在待您處理中。其結束也會取消。 |
| 結束,不論晚了多久 | 一律執行。放回原狀是較安全的方向。 |
| 單次變更逾期超過一天 | 在待您處理中等待您:立即執行或略過。 |
立即執行、重試和推出的開始不受這些規則限制。
重試
當 Shopify 忙碌或無法連線時,Metascheduler 會等待後再試,最多 5 次,每次等待的時間會更長。Shopify 拒絕的變更 (不允許的值、已不存在的項目) 不會重試:該項目會失敗,其餘繼續執行,並且執行結果會顯示部分完成。
衝突
當兩個排程在重疊的時間變更同一個項目時,編輯器會在衝突下列出,日曆也會標示這兩個排程。這是警告,而不是阻擋:安全的還原規則可避免重疊的排程覆蓋彼此的變更。
還是遇到問題嗎?我們很樂意協助。