该脚本必须从api获取帖子,并将其保存到数据库中。
在成功运行脚本后,它将无法获取新的帖子,即使在接下来的5-24小时内有一些新的帖子。它每次都会返回相同的旧响应,就像从缓存中运行一样。(如果我删除旧的帖子,它仍然会将它们添加到数据库中)
有趣的是,如果我部署相同的脚本,它第一次运行正常,然后再一次,我必须等待5-24小时以上。
如果运行成功,则需要3-10秒,否则不到1秒。
我真的搞不懂它,有没有缓存响应之类的东西?或者这可能是reddit api方面的一个问题?添加这些选项中的任何一个会有帮助吗?
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CONNECTTIMEOUT => 100,
CURLOPT_TIMEOUT => 100我目前正在使用请求库进行请求
r = requests.get(url, headers = {'User-agent': 'My App 12345'})
response = r.json()下面是我的脚本的GAE部分
class MainHandler(webapp2.RequestHandler):
def get(self):
# --------------- Database Connection ---------------
global db
global cursor
if os.getenv('SERVER_SOFTWARE', '').startswith('Google App Engine/'):
db = MySQLdb.connect(xxx)
else:
db = MySQLdb.connect(xxx)
cursor = db.cursor()
# ---------------------------------------------------
fetchFromReddit("") # Start fetching script
self.response.write("Finished !")
db.close()
cursor.close()
app = webapp2.WSGIApplication([
('/url', MainHandler)
], debug=True)发布于 2016-11-28 15:42:19
Appengine URL抓取服务执行appear来缓存响应。如此google appengine group thread中所述,要绕过/禁用缓存,您需要将以下内容添加到请求标头中:
headers={'Cache-Control': 'no-cache,max-age=0', 'Pragma': 'no-cache'}其中,"max-age"是您希望从缓存返回的最旧数据。
https://stackoverflow.com/questions/40686228
复制相似问题