是否可以更新任务队列中的AppEngine任务?
具体来说,更改任务的eta
属性以使其在不同的时间运行?
在我的方案中,我的数据存储区中的每个项目都附加了一个关联的任务。如果元素已更新,则需要使用新的eta
更新任务。
我目前使用name=item.key().id()
将任务名称明确地设置为项目的ID,以便我可以唯一地引用该任务。
当调用和删除任务时,名称不会立即释放(我认为)。这会导致问题,因为我需要在执行任务后立即重新添加任务。
答案 0 :(得分:1)
使用pull队列,您可以使用modify_task_lease设置相对于当前时间的ETA(即使您当前没有租用任务)。
您无法更改拉取队列任务的ETA。
每个任务的名称在七天内仍然不可用。
答案 1 :(得分:1)
所以我通过以下方式解决了这个问题:
我在我的模型中为task_name
创建了一个条目。当我创建元素并添加新任务时,我允许app引擎为任务生成一个自动的,唯一的名称,然后检索该任务的名称并将其与模型一起保存。
这允许我具有该任务的引用。
当我需要修改任务时,我只需删除现有任务,使用新的eta
创建一个新任务,然后将新任务的名称保存到模型中。
到目前为止这是有效的,但是在Task.add()
函数返回时,可能会出现关于任务不一致的问题。