2012-11-01 47 views
2

我們有一個需要一些時間才能執行的腳本。我們已經安排了一個cron作業並使用後端來運行作業。Python App Engine後端爲cron工作,但不是如果我直接點擊url

這裏的cron的樣子:
url: /cron/my_job_name
target: mybackend
schedule: every 30 minutes from 06:00 to 12:00

cron作業如預期正常運行。但是當我點擊網址: https://myappname.googleplex.com/cron/my_job_name 當作業運行超過60秒時,我收到「DeadlineExceededError」。

我需要能夠直接打網址用於測試目的。我不想每次都更改cron時間表進行測試。

有沒有辦法通過點擊url來運行後端?

添加我的app.yaml和backends.yaml

的app.yaml
url: /cron/my_job_name
script: path/my_job_name.py
login: admin

backends.yaml
name: mybackend
class: B8
instances: 1
options: dynamic

回答

1

這聽起來當你打你喜歡的網址,你實際上並沒有調用後端實例來處理它。

docs

後端實例可以使用HTTP請求有針對性地 HTTP:// [實例] [backend_name] [YOUR_APP_ID] .appspot.com訪問,或者在您的 應用程序自定義域。如果您的目標是後端,但未定位使用http:// [backend_name]。[your_app_id] .appspot.com的應用程序 ,則應用程序引擎選擇第一個可用的後端實例。

後端API提供了檢索後端或實例的地址的函數。這允許應用程序版本將 後端與請求相關聯,以便後端以另一個後端爲目標,或者以 爲後端的一個實例以另一個實例爲目標。這在開發和生產環境中均可運行 。

BACKEND_ID和INSTANCE_ID環境變量包含處理請求的實例的後端名稱和實例索引的 。

修改網址,包括您的後端名稱(從您backends.yaml),你應該能夠訪問它,提供了其他CONFIGS是正確的。

更多的是同一個主題:

後端共享app.yaml中定義的主 應用程序版本的處理器。如果您想避免共享代碼或 處理程序,或者只需使用login:admin標記相關處理程序,則可以將後端放置在單獨的 應用程序根目錄中。

如果你想發佈你的backends.yaml,app.yaml和處理程序,如果你想要更深入的答案可能會有所幫助。

+0

@TanvirShaikh,我會盡力,今天晚些時候重建,看看有什麼可能是一個問題......不過,我不知道爲什麼你正在使用「googolplex.com」 ...這是一個谷歌內部應用程序嗎? – Sologoub

+0

@TanvirShaikh我會問問周圍,看是否有人知道從公版的差異。我沒有與谷歌下屬,所以不知道其內部的東西。 – Sologoub