更新App Engine任务?

时间:2012-07-03 04:53:42

标签: python google-app-engine task-queue

是否可以更新任务队列中的AppEngine任务?
具体来说,更改任务的eta属性以使其在不同的时间运行?

在我的方案中,我的数据存储区中的每个项目都附加了一个关联的任务。如果元素已更新,则需要使用新的eta更新任务。

我目前使用name=item.key().id()将任务名称明确地设置为项目的ID,以便我可以唯一地引用该任务。

当调用和删除任务时,名称不会立即释放(我认为)。这会导致问题,因为我需要在执行任务后立即重新添加任务。

2 个答案:

答案 0 :(得分:1)

使用pull队列,您可以使用modify_task_lease设置相对于当前时间的ETA(即使您当前没有租用任务)。

您无法更改拉取队列任务的ETA。

每个任务的名称在七天内仍然不可用。

答案 1 :(得分:1)

所以我通过以下方式解决了这个问题:
我在我的模型中为task_name创建了一个条目。当我创建元素并添加新任务时,我允许app引擎为任务生成一个自动的,唯一的名称,然后检索该任务的名称并将其与模型一起保存。

这允许我具有该任务的引用。

当我需要修改任务时,我只需删除现有任务,使用新的eta创建一个新任务,然后将新任务的名称保存到模型中。

到目前为止这是有效的,但是在Task.add()函数返回时,可能会出现关于任务不一致的问题。