Сценарий должен получать сообщения из api и сохранять их в базе данных.Сценарий работает только при первом запуске
После запуска сценария, который выполняется успешно, он не сможет получать новые сообщения, даже если есть новые для других 5-24 + часов. Он будет возвращать тот же самый старый ответ каждый раз в доли секунды, как он запускался из кеша или что-то в этом роде. (если я удаляю старые сообщения, он все равно добавляет их в db)
Интересно, что если я разворачиваю тот же скрипт, он запускается нормально в первый раз, а затем снова, я должен ждать еще одного 5- 24 часа.
Если он работает успешно, он занимает 3-10 секунд, в противном случае он занимает меньше секунды.
Я действительно смущен этим, есть ли что-то вроде ответов на кеширование? Или это может быть проблемой на стороне 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)