什么是App Engine的任务队列中的TombstonedTaskError?

dbr*_*dbr 34 google-app-engine task-queue

什么TombstonedTaskError意思?在尝试从cron-job向队列中添加任务时会引发它:

Traceback (most recent call last):
  File "/base/python_lib/versions/1/google/appengine/ext/webapp/__init__.py", line 501, in __call__
    handler.get(*groups)
  File "/base/data/home/apps/.../tasks.py", line 132, in get
    ).add(queue_name = 'userfeedcheck')
  File "/base/python_lib/versions/1/google/appengine/api/labs/taskqueue/taskqueue.py", line 495, in add
    return Queue(queue_name).add(self)
  File "/base/python_lib/versions/1/google/appengine/api/labs/taskqueue/taskqueue.py", line 563, in add
    self.__TranslateError(e)
  File "/base/python_lib/versions/1/google/appengine/api/labs/taskqueue/taskqueue.py", line 619, in __TranslateError
    raise TombstonedTaskError(error.error_detail)
TombstonedTaskError
Run Code Online (Sandbox Code Playgroud)

搜索文档只有以下内容:

exception TombstonedTaskError(InvalidTaskError)
    Task has been tombstoned.
Run Code Online (Sandbox Code Playgroud)

..这不是特别有帮助.

我在App Engine代码中找不到任何有用的东西..

Nic*_*son 49

您之前添加了具​​有该确切名称的任务.虽然它已经运行,但执行的任务名称会保留一段时间,以防止意外重复.如果您要分配任务名称,则应使用全局唯一的名称来防止这种情况发生.

  • 请使用此说明更新文档 (17认同)
  • 为什么他们阻止在旧任务完成后添加具有相同名称的任务?如果是这样,他们应该允许一种方法来检查队列中的任务. (3认同)
  • @krzyk因为否则会出现竞争条件,您可以在完成任务时添加具有该名称的任务.任务名称的目的是防止重复执行. (2认同)
  • @jgeewax 7天,作为一项规则.但是,这不是你应该依赖的东西. (2认同)