[英]Send mail with smtplib works when deployed in local but fails when deployed in swarm (Cannot assign requested address)
[英]Cron works on local host but not when deployed Appengine
我在python中有一个cron作业,可以在我的localhost上运行,但是当它部署到appengine时,它不再有效。
pl = db.Query(Venue).order("id")
list = pl.fetch(limit=0)
for p in pl:
base_url = 'http://search.twitter.com/search.json?rpp=100&q=4sq.com/'
query = p.twitter_ID
url_string = base_url + query
json_text = fetch(url_string)
json_response = simplejson.loads(json_text.content)
result = json_response['results']
for f in result:
user = f['from_user']
print user
这在本地工作正常但在服务器上我收到以下错误:
'结果'Traceback(最近一次调用最后一次):文件“/ base / python_runtime / python_lib / versions / 1 / google / appengine / ext / webapp / init .py”,第515行,在call handler.get(* groups)文件中“/base/data/home/apps/hoosheer/4.347697940058059704/hoosheer_main.py”,第199行,in get result = json_response ['results'] KeyError:'results'
在我部署第二个版本之前,这确实有效。 有什么办法可以解决这个问题吗?
不返回JSON 'results'
字段,因为Twitter允许的每Ip请求已达到可用请求的最大配额 ; 这解释了为什么从你的国内IP你没有任何问题,你没有得到HTTP 420响应代码。
不幸的是,Google App Engine使用共享的IP地址池*来处理传出的urlfetch请求,而Twitter搜索API不支持身份验证。
搜索API速率限制
对search.twitter.com上托管的Search API的请求不计入REST API限制。 但是,来自IP地址的所有请求都将应用于搜索速率限制。 搜索速率限制不会公开,以阻止不必要的搜索使用和滥用,但它高于REST速率限制。 我们认为搜索速率限制对于大多数应用程序来说既自由又充足,并且知道许多应用程序供应商已经发现它适合他们的需求。
这会迫使您认真思考Google App Engine是否适合您的应用程序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.