2012-03-03 21 views
1

我有一個谷歌的AppEngine應用程序,它運行在定義爲動態的後端部分代碼如下:如何發送任務到一個新命名的後端

backends: 
- name: downloadfilesbackend 
    class: B1 
    instances: 1 
    options: dynamic 

我最近做了一些改變,以我的代碼和添加了第二個後端。我已經將一些任務從前端移動到新的後端,並且他們工作正常。但是,我想將最初在下載文件後端和上運行的任務移動到新的後端(以節省實例時間)。我只是通過改變目標的名字到新的後端即

taskqueue.add(queue_name = "organise-files", 
     url=queue_organise_files, 
     target='organise-files-backend') 

然而,儘管賦予新的後端名稱的任務仍然由老的後臺運行目標這樣做。任何想法爲什麼發生這種情況,或者我可以如何解決它?

編輯: 舊的後端正在運行新的任務 - 我已經檢查過了。

我也已經通過我的所有代碼來檢查是否有任何東西調用舊的後端,什麼都沒有。只有兩種將任務添加到舊後端的方法,並且這兩種方法都已如上所述進行了更改。

我停止了幾個小時的舊後端,看看這是否會改變任何事情,但發生的一切都是任務被卡住,直到我重新啓動後端。新的後端正在運行其他任務很好,所以它肯定已被正確更新...

+0

我無法重現這一點。原始後端隊列中仍然有一些任務(從更改之前)仍然可以執行嗎?您可能會檢查的另一件事是您是否在更改後根據需要重新部署後端。 – 2012-03-05 02:22:42

+0

我已經更新了該帖子,並提供了更多的細節以迴應您的疑問。 – user714852 2012-03-05 14:15:41

回答

0

這花了一段時間,但我終於發現,只是改變代碼並使用SDK上傳它是不夠的。如果在後臺運行,或發送任務給後臺處理程序中的代碼被更改,那麼你必須運行

appcfg backends <dir> update [backend] 

documentation for this command is here。我沒有看到任何說明這一點的文檔 - 這與我遇到的另一個相關錯誤有關,因此促成了這是一條途徑。只是想我會讓人們知道誰可能有類似的問題

相關問題