好吧,我有很多問題讓我的工作開發服務器工作到生產服務器:)。我有一個任務會通過並請求網址並收集和更新數據。運行需要30分鐘。<class'google.appengine.runtime.DeadlineExceededError'>:如何解決?
我上傳到生產服務器,並在30秒後轉到與其對應的.py腳本appname.appspot.com/tasks/rrs的網址我得到類google.appengine.runtime.DeadlineExceededError'有沒有辦法解決這個問題?這是一頁30秒的截止日期嗎?此腳本在開發服務器中正常工作,我轉到url並關聯.py腳本運行直到完成。
import time
import random
import string
import cPickle
from StringIO import StringIO
try:
import json
except ImportError:
import simplejson as json
import urllib
import pprint
import datetime
import sys
sys.path.append("C:\Program Files (x86)\Google\google_appengine")
sys.path.append("C:\Program Files (x86)\Google\google_appengine\lib\yaml\lib")
sys.path.append("C:\Program Files (x86)\Google\google_appengine\lib\webob")
from google.appengine.api import users
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
from google.appengine.ext import db
class SR(db.Model):
name = db.StringProperty()
title = db.StringProperty()
url = db.StringProperty()
##request url and returns JSON_data
def overview(page):
u = urllib.urlopen(page)
bytes = StringIO(u.read())
##print bytes
u.close()
try:
JSON_data = json.load(bytes)
return JSON_data
except ValueError,e:
print e," Couldn't get .json for %s" % page
return None
##specific code to parse particular JSON data and append new SR objects to the given url list
def parse_json(JSON_data,lists):
sr = SR()
sr.name = ##data gathered
sr.title = ##data gathered
sr.url = ##data gathered
lists.append(sr)
return lists
## I want to be able to request lets say 500 pages without timeing out
page = 'someurlpage.com'##starting url
url_list = []
for z in range(0,500):
page = 'someurlpage.com/%s'%z
JSON_data = overview(page)##get json data for a given url page
url_list = parse_json(JSON_data,url_list)##parse the json data and append class objects to a given list
db.put(url_list)##finally add object to gae database
wtf,所以讓我們假設我有一大串我想在for循環中請求的URL,收集數據並在放入db.class實例之前將其放入列表中。最好的方法是什麼? – user291071 2010-07-24 17:05:52
將模型列表放入模型中,並使用bulkupdate執行隊列。 Atleast ...我認爲這將是最簡單的解決方案;) – Wolph 2010-07-24 17:29:05
是的,但我需要反覆請求網址和更新信息的for循環不只是上傳的網址,我正在尋找一個例子代碼請求很多網址的人一個避免超時錯誤的for循環。 – user291071 2010-07-24 18:43:11