Как организовать очередь задач в AppEngine?

Казалось бы простая задача, но уже бьюсь головой об стенку. Backend машина, есть метод, который выполняет задачу одна за другой, и если очередь задач пуста, завершается.
from google.appengine.api import taskqueue
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app

class Worker(webapp.RequestHandler):
  def get(self):
    q = taskqueue.Queue('pull-queue')
    tasks = q.lease_tasks(3600, 1)
    if len(a):
      task = tasks[0]
      # долгая работа с задачей
    q.delete(task)

application = webapp.WSGIApplication([('/backend', Worker)])



Соответственно фронтенд машина просто ставит задачу в конец очереди
q = taskqueue.Queue('pull-queue')
q.add(taskqueue.Task(payload=data, method='PULL'))



Как сигнализировать backend что задачи появились в очереди? Наверное, надо сказать, что это dynamic backend, и есть ситуации когда он просто не запущен.
  • Вопрос задан
  • 3075 просмотров
Пригласить эксперта
Ответы на вопрос 2
ArthurG
@ArthurG
По cron'у запускать backend периодически.
Ответ написан
xSkyFoXx
@xSkyFoXx
Вы можете использовать асинхронные запросы через url fetch.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы