是否可以更新任務隊列中的AppEngine任務?
具體而言,更改任務的eta
屬性以使其在不同時間運行?更新App引擎任務?
在我的方案中,我的數據存儲中的每個項目都有一個關聯的任務附加到它。如果元素更新,則任務需要更新爲新的eta
。
我當前使用name=item.key().id()
將該任務的名稱明確設置爲該項目的ID,以便我可以唯一地引用該任務。
當任務被調用和刪除,名稱不會立即釋放(我認爲)。這會導致問題,因爲我需要在執行任務後立即重新添加任務。
是否可以更新任務隊列中的AppEngine任務?
具體而言,更改任務的eta
屬性以使其在不同時間運行?更新App引擎任務?
在我的方案中,我的數據存儲中的每個項目都有一個關聯的任務附加到它。如果元素更新,則任務需要更新爲新的eta
。
我當前使用name=item.key().id()
將該任務的名稱明確設置爲該項目的ID,以便我可以唯一地引用該任務。
當任務被調用和刪除,名稱不會立即釋放(我認爲)。這會導致問題,因爲我需要在執行任務後立即重新添加任務。
所以我用以下方式解決了這個問題:
我在我的模型中爲task_name
創建了一個條目。創建元素並添加新任務時,我允許應用引擎爲該任務生成一個自動唯一的名稱,然後檢索該任務的名稱並將其保存在模型中。
這使我可以參考該任務。
當我需要修改任務時,我只需刪除現有的任務,使用新的eta
創建一個新任務,然後將新任務的名稱保存到模型中。
這是迄今爲止的工作,但未來可能會出現關於Task.add()
函數返回時任務不一致的問題。
對於拉隊列,您可以使用modify_task_lease設置相對於當前時間的ETA(即使您當前沒有租用任務)。
您無法更改拉式隊列任務的ETA。
每個任務的名稱在七天內仍然不可用。
這是一個很好的解決方案。儘管如何檢索具有該唯一名稱的任務? – Houman