更新应用引擎任务



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

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

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

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

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

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

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

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

这使我能够引用该任务。

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

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

最新更新