2012-01-02 3 views
0

특정 cron/요청에 대한 Google App Engine 요청 시간 제한을 비활성화하려면 어떻게합니까?GAE : 요청이 30 초 이상 필요합니다.

나는 30 초 이상의 프로세싱이 필요한 루틴을 만들고 있으며, GAE는 루틴을 종료합니다.

해결책이 있습니까?

답변

2

한 옵션은 Task Queues이며 제한 시간은 10 분입니다.

다른 하나는 시간 제한이없는 Backends입니다.

+0

백엔드 크론을 통해 작업하고 있지만 30 초가 지나면 시간 초과가 발생합니다. – Victor

+0

URLFetch를 수행하고 있습니까? 그것은 5 초의 타임 아웃을 가지고 있습니다. –

0

필자는 백엔드를 사용하여 더 많은 CPU 시간을 필요로하는 작업을 성공적으로 수행했습니다. python을 기반으로하지만이 개념은 동일해야합니다.

A. 사용 크론은 예를 들어 작업 을 실행 :

cron: 
- description: Start Backend to parse the log 
    url: /_ah/start/ParseLog/ 
    schedule: every day 00:00 

는 B. 크론 의해 실행되는 태스크는 선단부에서 실행되고, 그것은 여전히 ​​제한 시간을 갖도록. 따라서 시간 제한을 피하기 위해 작업을 백엔드 ("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') 

C. 백엔드에 전달 된 작업을 수신하고 루틴 작업에서 작동합니다.

class ParseLogWorker(webapp.RequestHandler): 
    # run on backends 
    def get(self): 
     self.post() 

    def post(self): 
     # do your routines job here 
0

는 난 그냥 최근 프로젝트에서 작업 큐를 사용하고,이 10 분의 제한 시간을 가지고, 당신은 작업 대기열을 사용할 수 있습니다 동의 그리고 난 재하는 약간의 코드를 수행 한 10 분 이상 필요한 경우 편리한 매개 변수를 사용하여 같은 작업을 큐에 넣으므로 더 비싼 사용 백엔드를 피할 수 있습니다.

관련 문제