2015-01-12 28 views
0

При добавлении определенной задачи в очередь задач я хотел бы убедиться, что есть только одна такая задача. Если эта задача уже существует, я хотел бы удалить ее и вместо нее добавить новую задачу (откладывание ее выполнения также в порядке). Это мой код:Как заменить задачу в очереди задач Google App Engine?

queue = taskqueue.Queue() 
queue.delete_tasks_by_name('task_name') 
task = taskqueue.Task(
    name = 'task_name', 
    url = '/task/url', 
    method = 'GET', 
    countdown = 3600) 
queue.add(task) 

При выполнении кода он поднимает TombstonedTaskError, которые делают смысл в соответствии с Документами. Есть ли способ заменить или отложить выполнение существующей задачи?

+0

@marcadian это точно, что делает код в вопросе .. – Tzach

+0

yup, пропустил это. Зачем вам нужно заменить задачу? Из вашего примера не изменено значение полезной нагрузки/параметров. – marcadian

+0

@marcadian Мне нужно перезапустить обратный отсчет – Tzach

ответ

0

Use tags instead of names. Дайте тегу уникальное имя, затем выполните lease_task_by_tag, чтобы узнать, существует ли он.

добавить (taskqueue.Task (полезная нагрузка = 'parse1', метод = 'PULL', тег = 'синтаксического анализа')) lease_tasks_by_tag (lease_seconds, max_tasks, тег = нет, срок = 10)

+0

Спасибо, но 'lease_tasks_by_tag' применяется только для выполнения задач очереди. Моя задача - задачи очереди очереди. – Tzach

Смежные вопросы