2009-07-08 18 views
33

Che cosa significa "TombstonedTaskError"? Viene sollevata durante il tentativo di aggiungere un'attività alla coda, da un cron-job:Che cos'è TombstonedTaskError dalla coda attività di 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 

Cercando la documentazione solo ha a dire quanto segue:

exception TombstonedTaskError(InvalidTaskError) 
    Task has been tombstoned. 

.. che non è particolarmente utile.

non riuscivo a trovare qualcosa di utile nella App Engine code sia ..

risposta

46

Hai aggiunto un compito con quel nome esatto prima. Sebbene sia già in esecuzione, i nomi delle attività eseguite vengono mantenuti per un po 'di tempo per evitare duplicati accidentali. Se stai assegnando nomi di attività, dovresti utilizzare quelli che sono globalmente unici per evitare che ciò si verifichi.

+17

si prega di aggiornare la documentazione con questa spiegazione – fjsj

+3

Perché impediscono di aggiungere attività con lo stesso nome DOPO che la vecchia attività è terminata? Se è così, dovrebbero consentire un modo per verificare quali attività sono in coda. –

+2

@krzyk Perché altrimenti ci sarebbe una condizione di competizione in cui si aggiunge un'attività con quel nome esattamente come finisce. Il punto dei nomi delle attività è impedire l'esecuzione ripetuta. –

Problemi correlati