2011-02-06 81 views
5

最近我開始在我的Google App Engine項目中使用有限的分段。數據仍然在所有版本之間共享,但行爲(特別是面向用戶的行爲)是不同的。如何將GAE cron作業作爲特定的應用程序版本運行?

當然,當我實現了令人難以置信的新功能時,它只能運行在我的代碼的最新版本上,我不覺得它應該回溯到舊版本。

這些新功能中的一部分需要定期運行cron作業,但是我遇到了問題。我要運行一個cron作業來調用最新的代碼,但是這是谷歌的文檔中有關於這個問題:

Cron requests are always sent to the default version of the application. 

默認版本是最古老的,因爲出去的客戶端代碼的第一個版本給用戶不是未來的證明,也不知道如何選擇要調用的API版本。

所以我的問題是,我怎樣才能解決這個限制,並做出一個cron作業,將調用最新的應用程序的默認版本?

回答

3

您不能將cron作業更改爲在不同的版本上運行,然後使用默認設置。

根據您的cron作業運行多少時間,您可以將您的cron作業腳本更改爲執行「http://latest.appname.appspot.com/cron_job_endpoint」的URLFetch。

如果您的cron作業需要更長的時間才能運行10分鐘,那麼我會以可以使用任務隊列鏈接不同任務的方式進行設計。

+0

感謝這個想法,我做了一個簡單的API,充當meta-cron,並簡單地調用相應應用程序版本上的實際cronjob的url。 – 2011-02-07 01:07:13

12

您現在可以使用目標標籤指定一個版本。

<target>version-2</target> 
+2

在cron.yaml中,你可以添加'target:2`這一行 – hamx0r 2015-12-01 14:30:21