Я использовал бэкэнд для запуска задач, требующих большего времени процессора, и он работает хорошо. Хотя он основан на python, я считаю, что концепция должна быть одинаковой.
A. Использование хрон для выполнения задач Например:
cron:
- description: Start Backend to parse the log
url: /_ah/start/ParseLog/
schedule: every day 00:00
B. Задачи, выполняемые хрон работают в передней части, так что все еще имеет ограничение по времени. Таким образом, я перенаправляю задачу на бэкэнд (называемый «рабочий»), чтобы избежать ограничения по времени.
class ParseLogStarter(webapp.RequestHandler):
# run on frontend
def get(self):
self.post()
def post(self):
date = self.request.get("date")
# do nothing but forwarding to backend "worker"
taskqueue.add(url="/_ah/ParseLog/", params={"date":date}, target='worker')
C. На внутреннем интерфейсе, получать пересылаемые задачи и работать на работу подпрограмм.
class ParseLogWorker(webapp.RequestHandler):
# run on backends
def get(self):
self.post()
def post(self):
# do your routines job here
Я делаю через backend cron, но я получаю таймаут с 30s – Victor
Вы делаете какой-либо URLFetch? Он имеет тайм-аут 5 с. –