3
0
Fork 0

Add fetch.py

master
ifiguero 2024-07-29 15:31:25 -04:00
parent 9584464df6
commit 80988c72cc
1 changed files with 50 additions and 0 deletions

50
fetch.py 100644
View File

@ -0,0 +1,50 @@
# coding: utf-8
from apscheduler.schedulers.background import BlockingScheduler
from datetime import datetime
from main import read_file_proto_x_stop, r, tz
import requests
import logging
import json
import os
def rutina_principal():
print(datetime.now(tz))
fileproto = download_file_backend()
if fileproto == None:
return False
namefile = r.get('fileproto')
if namefile == fileproto['name']:
print(namefile, flush=True)
return
# eliminar toda la informacion actual
r.flushdb()
r.set('fileproto', fileproto['name'])
print(fileproto['name'], flush=True)
data = read_file_proto_x_stop(fileproto['content'])
# save data to redis db
for key in data:
r.set(key, json.dumps(data[key]))
# print(json.dumps(data['route:549-1'], indent=4))
def download_file_backend():
response = requests.get(os.environ.get('BACKEND'))
if response.status_code == 200:
content_disposition = response.headers['Content-Disposition']
nombre_archivo = content_disposition.split('filename=')[1]
return { 'name': nombre_archivo, 'content': response.content }
return None
sched = BlockingScheduler()
sched.add_job(rutina_principal, 'interval', seconds=int(os.environ.get('INTERVAL'))) #will do the print_t work for every 30 seconds
if __name__ == '__main__':
sched.start()