2010-05-21 109 views
2

我正在爲定期發送電子郵件通知的客戶開發一個站點,爲了方便起見,我有一個在凌晨2點運行的cron作業,以開始安排單個任務發送通知。這一切都很好,可以完美地與任務計劃立即執行,但爲了協助開發和測試,我編寫了一些使用ipythonremote_api_stub的CLI應用程序與我的應用程序和數據存儲進行交互,當我在命令行上安排任務時像這樣:任務隊列執行

task = taskqueue.Task(url='/admin/tasks/email', params={'email': email, 'type': notif.type}) 
task.add("email") 

我得到1小時的任務執行延遲。爲什麼是這樣?有沒有辦法讓任務立即執行?

回答

3

SDK中似乎有一個與時區相關的bug,導致通過遠程API創建的任務的eta會在添加後一小時安排。如果您明確將倒計時設置爲0,則應該安排該任務立即運行。

+0

感謝但使用'task = taskqueue.Task(url ='/ admin/tasks/email',params = {'email':email,'type':notif.type},countdown = 0)'仍然在1小時內安排':/' – 2010-05-21 14:10:49

+1

嘗試將ETA設置爲過去。 – 2010-05-21 18:17:40

2

如果您希望它立即執行,只需在瀏覽器中打開URL。爲什麼要繞過任務隊列?

+0

謝謝,但任務調用'POST'而不是'GET',所以不是一個真正的解決方案。 – 2010-05-21 11:57:10

+2

但是,任務只是一個由應用程序中的RequestHandler處理的URL,無論使用GET還是POST調用,都可以輕鬆地使其運行相同的代碼。 – 2010-05-21 12:52:24