main
ifiguero 2023-09-29 18:46:55 -03:00
parent f7465517e6
commit f4320efbaa
2 changed files with 7 additions and 6 deletions

View File

@ -3,6 +3,7 @@ from fetcher.model.feed import db, Registros
from tempfile import NamedTemporaryFile from tempfile import NamedTemporaryFile
from shutil import copyfile from shutil import copyfile
from datetime import datetime from datetime import datetime
from zoneinfo import ZoneInfo
import requests import requests
import logging import logging
import time import time
@ -18,7 +19,7 @@ handler.setFormatter(formatter)
log.addHandler(handler) log.addHandler(handler)
def load_proto(): def load_proto():
inicio = datetime.now() inicio = datetime.now(tz=ZoneInfo("America/Santiago"))
final_dir = "static/ccp/{}/{}/{}".format(inicio.strftime("%Y"), inicio.strftime("%m"), inicio.strftime("%d")) final_dir = "static/ccp/{}/{}/{}".format(inicio.strftime("%Y"), inicio.strftime("%m"), inicio.strftime("%d"))
final_name = "static/ccp/{}/{}/{}/ccp_gtfs_{}.proto".format(inicio.strftime("%Y"), inicio.strftime("%m"), inicio.strftime("%d"), inicio.strftime("%Y%m%d_%H%M_%S")) final_name = "static/ccp/{}/{}/{}/ccp_gtfs_{}.proto".format(inicio.strftime("%Y"), inicio.strftime("%m"), inicio.strftime("%d"), inicio.strftime("%Y%m%d_%H%M_%S"))
@ -32,10 +33,10 @@ def load_proto():
nuevo_registro = Registros(filename=final_name, status=0) nuevo_registro = Registros(filename=final_name, status=0)
db.add(nuevo_registro) db.add(nuevo_registro)
db.commit() db.commit()
log.info("Fetched GTFS-RT Record {} in {}s".format(inicio.strftime("%Y%m%d_%H%M_%S"), (datetime.now()-inicio).total_seconds())) log.info("Fetched GTFS-RT Record {} in {}s".format(inicio.strftime("%Y%m%d_%H%M_%S"), (datetime.now(tz=ZoneInfo("America/Santiago"))-inicio).total_seconds()))
except: except:
import traceback import traceback
log.error("Failed to fetch GTFS-RT Record {} in {}s".format(inicio.strftime("%Y%m%d_%H%M_%S"), (datetime.now()-inicio).total_seconds())) log.error("Failed to fetch GTFS-RT Record {} in {}s".format(inicio.strftime("%Y%m%d_%H%M_%S"), (datetime.now(tz=ZoneInfo("America/Santiago"))-inicio).total_seconds()))
log.info('Traceback {}'.format(traceback.format_exc())) log.info('Traceback {}'.format(traceback.format_exc()))
nuevo_registro = Registros(filename=final_name, status=100) nuevo_registro = Registros(filename=final_name, status=100)
db.add(nuevo_registro) db.add(nuevo_registro)

View File

@ -41,9 +41,9 @@ def sync_db():
if patentedb is None: if patentedb is None:
patentedb = Vehiculo(patente=patente, timestamp=itemts) patentedb = Vehiculo(patente=patente, timestamp=itemts)
db.add(patentedb) db.add(patentedb)
db.commit()
elif patentedb.timestamp < itemts: elif patentedb.timestamp < itemts:
patentedb.timestamp = itemts patentedb.timestamp = itemts
db.commit()
if item.HasField('trip_update'): if item.HasField('trip_update'):
tripid = item.trip_update.trip.trip_id tripid = item.trip_update.trip.trip_id
@ -58,9 +58,9 @@ def sync_db():
tripdb = Viaje(trip_id=tripid, route_id=routeid, direction_id=direccionid, start_time=tstar, start_date=dstart, timestamp=itemts) tripdb = Viaje(trip_id=tripid, route_id=routeid, direction_id=direccionid, start_time=tstar, start_date=dstart, timestamp=itemts)
db.add(tripdb) db.add(tripdb)
db.commit()
elif tripdb.timestamp < itemts: elif tripdb.timestamp < itemts:
tripdb.timestamp = itemts tripdb.timestamp = itemts
db.commit()
tripdbid = tripdb.id tripdbid = tripdb.id
else: else:
tripdbid = None tripdbid = None
@ -69,9 +69,9 @@ def sync_db():
if entidadesdb is None: if entidadesdb is None:
entidadesdb = Entidades(entity=str(item.id), vehicleid=patentedb.id, tripid=tripdbid, timestamp=itemts) entidadesdb = Entidades(entity=str(item.id), vehicleid=patentedb.id, tripid=tripdbid, timestamp=itemts)
db.add(entidadesdb) db.add(entidadesdb)
db.commit()
elif entidadesdb.timestamp < itemts: elif entidadesdb.timestamp < itemts:
entidadesdb.timestamp = itemts entidadesdb.timestamp = itemts
db.commit()
posiciondb = db.query(Posicion).filter(Posicion.vehicleid==patentedb.id, Posicion.timestamp==itemts).one_or_none() posiciondb = db.query(Posicion).filter(Posicion.vehicleid==patentedb.id, Posicion.timestamp==itemts).one_or_none()
if posiciondb is None: if posiciondb is None: