2009-07-08 10 views
33

¿Qué significa el TombstonedTaskError? Está siendo levantado al intentar añadir una tarea a la cola, a partir de un trabajo programado:¿Qué es TombstonedTaskError de la cola de tareas de App Engine?

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 

Búsqueda en la documentación sólo ha que decir lo siguiente:

exception TombstonedTaskError(InvalidTaskError) 
    Task has been tombstoned. 

.. que no es particularmente útil.

no pude encontrar nada útil en el App Engine code ya sea ..

Respuesta

46

Ha añadido una tarea con ese nombre exacto antes. Aunque ya se ejecutó, los nombres de las tareas ejecutadas se mantienen durante un tiempo para evitar duplicados accidentales. Si está asignando nombres de tareas, debe usar los que son únicos a nivel mundial para evitar que esto ocurra.

+17

actualice la documentación con esta explicación – fjsj

+3

¿Por qué impiden agregar tareas con el mismo nombre DESPUÉS de que la tarea anterior haya finalizado? Si es así, deberían permitir una forma de verificar qué tareas están en la cola. –

+2

@krzyk Porque de lo contrario habría una condición de carrera en la que agregaría una tarea con ese nombre justo cuando termina. El objetivo de los nombres de las tareas es evitar la repetición de la ejecución. –

Cuestiones relacionadas