특정 cron/요청에 대한 Google App Engine 요청 시간 제한을 비활성화하려면 어떻게합니까?GAE : 요청이 30 초 이상 필요합니다.
나는 30 초 이상의 프로세싱이 필요한 루틴을 만들고 있으며, GAE는 루틴을 종료합니다.
해결책이 있습니까?
특정 cron/요청에 대한 Google App Engine 요청 시간 제한을 비활성화하려면 어떻게합니까?GAE : 요청이 30 초 이상 필요합니다.
나는 30 초 이상의 프로세싱이 필요한 루틴을 만들고 있으며, GAE는 루틴을 종료합니다.
해결책이 있습니까?
한 옵션은 Task Queues이며 제한 시간은 10 분입니다.
다른 하나는 시간 제한이없는 Backends입니다.
작업 대기열을 확인하는 것이 좋습니다. http://code.google.com/appengine/docs/java/taskqueue/overview-push.html
필자는 백엔드를 사용하여 더 많은 CPU 시간을 필요로하는 작업을 성공적으로 수행했습니다. python을 기반으로하지만이 개념은 동일해야합니다.
A. 사용 크론은 예를 들어 작업 을 실행 :
는 B. 크론 의해 실행되는 태스크는 선단부에서 실행되고, 그것은 여전히 제한 시간을 갖도록. 따라서 시간 제한을 피하기 위해 작업을 백엔드 ("worker"라고 함)로 전달합니다.cron: - description: Start Backend to parse the log url: /_ah/start/ParseLog/ schedule: every day 00:00
는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
는 난 그냥 최근 프로젝트에서 작업 큐를 사용하고,이 10 분의 제한 시간을 가지고, 당신은 작업 대기열을 사용할 수 있습니다 동의 그리고 난 재하는 약간의 코드를 수행 한 10 분 이상 필요한 경우 편리한 매개 변수를 사용하여 같은 작업을 큐에 넣으므로 더 비싼 사용 백엔드를 피할 수 있습니다.
백엔드 크론을 통해 작업하고 있지만 30 초가 지나면 시간 초과가 발생합니다. – Victor
URLFetch를 수행하고 있습니까? 그것은 5 초의 타임 아웃을 가지고 있습니다. –