2012-07-12 78 views
0

在我的生產服務器上,我有大約500個任務隊列,連續30次失敗並正在任務隊列中等待。除了手動點擊「運行」爲所有這些,有沒有辦法恢復所有的任務?我不能指出「恢復全部」功能的任何任務。AppEngine恢復所有任務

我嘗試上傳一個新的queue.yaml task_retry_limit:100,但它不起作用。這就像,30標記擊中後,AppEngine上只是停止執行任務之前

queue.yaml中失敗的500個任務

queue: 
     - name: default 
     - rate: 1/s 

回答

0

剛剛嘗試了一次新的隊列名稱(如下指),而不是在默認隊列上,這個隊列正在爲我工​​作。

- name: sales-queue 
    rate: 10/s 
    max_concurrent_requests: 1 
    retry_parameters: 
    task_retry_limit: 500 
    min_backoff_seconds: 10 
    max_backoff_seconds: 20 
0

儀表板中沒有用於運行所有任務的按鈕。任務未執行的原因是15,000個失敗的任務(可能沒有成功的任務)導致App Engine無論指定的任務速率如何顯着地停止任務執行。

要恢復所有任務,只需手動運行其中的一些任務。如果成功,App Engine會再次注意並緩慢增加任務執行率,這會導致更多任務運行併成功,從而導致App Engine增加任務速率等等,直到恢復默認任務速率。這將相對迅速地融入所有正在運行的500個任務中。

1

請注意,隨着您的任務繼續失敗並重試,任務隊列系統會安排任務在未來進一步執行。默認情況下,最大ETA爲1小時。你的任務是否都有一個小時的ETA?

+0

我剛剛有這個相同的問題 - 我會堆上一些任務,但我只有一個後端實例。所以,他們中的一羣會得到'503',他們的等待時間會翻倍。而這將會一遍又一遍地發生。就像你提到的那樣,我看到ETA時間增加了一倍。我添加了'max_backoff_seconds' la https://developers.google.com/appengine/docs/python/config/queue,然後等待... – rmosolgo 2013-10-15 04:24:13