Google Code 提供下列語言介面: English - Español - 日本語 - 한국어 - Português - Pусский - 中文(简体) - 中文(繁體)
透過「應用服務引擎 Cron Service」,您可以定期設定排程工作;這些排程工作會依照您定義的時間或時間間隔執行作業,通常稱作「Cron 任務」。「應用服務引擎 Cron Service 」會自動觸發 cron 任務。舉例來說,您可以使用此服務每天寄送電子郵件報告、每 10 分鐘更新快取資料,或每小時更新摘要資訊。
Cron 任務會在每天的指定時間啟動網址,而啟動的網址所受到的限制和配額與一般 HTTP 要求相同,其中包括要求時間的限制。
應用程式最多可以擁有 20 個排程工作。
應用程式 WEB-INF 目錄下的 cron.xml 檔案 (與 appengine-web.xml 並排) 會控制 Java 應用程式中的 Cron。下列是 cron.xml 檔案的範例:
<?xml version="1.0" encoding="UTF-8"?>
<cronentries>
<cron>
<url>/recache</url>
<description>Repopulate the cache every 2 minutes</description>
<schedule>every 2 minutes</schedule>
</cron>
<cron>
<url>/weeklyreport</url>
<description>Mail out a weekly report</description>
<schedule>every monday of month 08:30</schedule>
<timezone>America/New_York</timezone>
</cron>
</cronentries>
如需說明格式的 XSD 檔案,請參考 SDK 中的 docs/cron.xsd 檔案。
cron.xml 檔案中包含數個任務定義。任務定義必須包含一個 <url> 和一個 <schedule>。而您也可以選擇指定一個 <description>一個 和 <timezone>。這些說明將顯示在管理控制台中。
url 欄位指的是應用程式的 URL。schedule 欄位的格式將於排程格式中詳細說明。
timezone 必須是標準 zoneinfo 時區名稱中的名稱。 如果您並未指定 timezone,則任務會以通用時間慣例 (UTC,也稱為 GMT) 時間執行。
Cron 排程是透過簡單英文的格式指定,
排程範例如下:
every 5 minutes every 12 hours 2nd,third mon,wed,thu of march 17:00 every monday of month 09:00 1st monday of sep,oct,nov 17:00
如果您不需要定期在特定時間執行工作,但是需要在固定的時間間隔後重複工作,請使用此格式:every N (hours|mins|minutes) (N 是數字,hours 或 minutes 則指定時間單位)。重複工作的最短時間間隔為 1 分鐘。
如果您需要更精確的時間安排,請使用此格式:
("every"|ordinal) (days) "of" (monthspec) (time)
括號是為了更清楚解釋格式,引號則標示出一般文字。
其中:
您可以將權限設定為僅限管理員帳戶存取,以避免使用者存取排程工作使用的 URL。排程工作可以存取僅限管理員使用的 URL。您可以在安全性和驗證中取得更多關於限制 URL 的資訊。下列為在 web.xml 中,將所有以 /cron/ 開頭的網址設定為僅限管理員使用的範例:
<security-constraint>
<web-resource-collection>
<url-pattern>/cron/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
如需更多 web.xml 格式的資訊,請參閱「部署描述元」中的文件。
若要測試 Cron 任務,請以管理員身分登入,並連線到瀏覽器之處理常式的 URL。
來自 Cron Service 的要求也將包含一個 HTTP 標頭:
X-AppEngine-Cron: true
如果您要確保只有 Cron 要求可以觸發您的處理常式,請檢查該標頭。
您可以使用 AppCfg 上傳 Cron 任務。當您使用 AppCfg update 將應用程式上傳到「應用服務引擎」時,Cron Service 會隨著 cron.xml 內容一起更新。您可以使用 AppCfg update_cron 僅更新 Cron 設定而不上傳其餘的應用程式。
若要刪除所有的 Cron 任務,請將 cron.xml 檔案變更為僅包含:
<?xml version="1.0" encoding="UTF-8"?> <cronentries/>
「管理控制台」可讓您檢視 cron 任務的狀態。在側欄選單選取 [Cron Jobs] (Cron 任務) 連結,即可檢視任務狀態,包含任務最後執行的時間以及結果。
您也可以在 [Admin Console] (管理控制台) 選單中,選取 [Admin Logs] (管理記錄) 網頁,以查看 cron 任務的新增或移除時間。
開發應用程式伺服器不會自動執行您的 Cron 任務。您可以使用本機桌面的 Cron 或排程工作介面,以 curl 或小型工具來點擊任務的 URL。