2015-01-12 218 views
0

將任務添加到任務隊列時,我想確保只有一個這樣的任務。如果這個任務已經存在,我想刪除它並添加新的任務(推遲它的執行也是可以的)。這是我的代碼:如何替換Google App Engine任務隊列上的任務?

queue = taskqueue.Queue() 
queue.delete_tasks_by_name('task_name') 
task = taskqueue.Task(
    name = 'task_name', 
    url = '/task/url', 
    method = 'GET', 
    countdown = 3600) 
queue.add(task) 

當運行它提出了一個TombstonedTaskError的代碼,根據文檔這是有意義的。有沒有辦法替代或推遲現有任務的執行?

+0

@marcadian這正是在問題中的代碼是什麼.. – Tzach

+0

是的,錯過了。爲什麼你需要更換任務?在你的例子中,沒有改變有效載荷/參數。 – marcadian

+0

@marcadian我需要重新開始倒計時 – Tzach

回答

0

Use tags instead of names。給標籤一個獨特的名字,然後做一個lease_task_by_tag看看它是否存在。

加載(taskqueue.Task(有效載荷= 'parse1',方法= '拉',標籤= '解析')) lease_tasks_by_tag(lease_seconds,max_tasks,標籤=無,截止= 10)

+0

謝謝但'lease_tasks_by_tag'只適用於拉隊列任務。我的任務是推送隊列任務。 – Tzach

相關問題