2

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

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

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

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

4

2 回答 2

1

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

您不能更改拉取队列任务的 ETA。

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

于 2012-07-03T09:44:06.307 回答
1

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

这使我可以对任务进行引用。

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

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

于 2012-07-03T14:34:25.293 回答