如何禁用特定cron /请求的Google App Engine请求超时。
我正在创建一些需要超过30个处理的例程,GAE总是终止我的例程。
有没有解决方案?
答案 0 :(得分:2)
一个选项是Task Queues,其时间限制为10分钟。
另一个是Backends,没有时间限制。
答案 1 :(得分:0)
答案 2 :(得分:0)
我已经使用后端来运行需要更多CPU时间的任务,并且运行良好。 虽然它基于python,但我相信这个概念应该是一样的。
一个。使用cron执行任务 例如:
cron: - description: Start Backend to parse the log url: /_ah/start/ParseLog/ schedule: every day 00:00
B中。 cron执行的任务在前端运行,因此它仍然有时间限制。因此,我将任务转发到后端(名为“worker”)以避免时间限制。
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')
℃。在后端,接收转发的任务并处理例程工作。
class ParseLogWorker(webapp.RequestHandler): # run on backends def get(self): self.post() def post(self): # do your routines job here
答案 3 :(得分:0)
我同意,您可以使用任务队列,这些队列的超时时间为10分钟,我刚刚在最近的项目中使用了任务队列,并且我已经完成了一些代码,以便使用方便的参数重新排队相同的任务需要超过10分钟,所以我避免使用更昂贵的后端。