2015-10-05 68 views
2

我已經通過這裏了文檔看了: https://cloud.google.com/appengine/docs/python/urlfetch/ 這裏: https://cloud.google.com/appengine/articles/deadlineexceedederrors?hl=enApp Engine的Python的UrlFetch.set_default_fetch_deadline

我也發現這個堆棧溢出問題,它涉及到我的問題: How to set timeout for urlfetch in Google App Engine?

我從我的應用程序引擎應用程序連接到外部Web服務,我無法控制。有時這些請求需要超過60秒。我將我的應用程序設置爲使用延期應用程序引擎任務隊列api。

我很困惑。在我看過的文檔中,似乎urlfetch的最大截止時間爲60秒。但是如果它在task_queue中運行,那麼它需要10分鐘?我真的只需要有人爲我澄清這一點。

這是否意味着任務有10分鐘完成,但任務內的urlfetch仍然限制在60秒?

僞代碼:

myTask = newTask() 
deffered.defer(myTask.long_process, _queue="myqueue") 

class newTask: 
    url = "https://example.com" 
def long_process(self): 
    #will setting the deadline to more than 60 seconds work or not? 
    urlfetch.set_default_fetch_deadline(120) 
    data = {} 
    resp = urlfetch.fetch(self.url, method="POST", payload=data) 
    #do something with resp.... 

回答

0

您可以同時控制網址抓取和遞延任務的最後期限。

兩者都可以運行長達600秒的AFAIK。

你不應該做的一件事是將urfetch截止日期設置爲比任務更高的值;)