Catch exceptions in refresh()

This commit is contained in:
Nahuel Lofeudo 2023-11-10 09:57:10 +00:00
parent 9f87527d9a
commit 3c3199e3eb
1 changed files with 35 additions and 32 deletions

View File

@ -352,41 +352,44 @@ class GTFSClient():
""" """
Create and enqueue the refreshed stop data Create and enqueue the refreshed stop data
""" """
# Retrieve the GTFS-R deltas try:
deltas, canceled_trips, added_stops = self.__poll_gtfsr_deltas() # Retrieve the GTFS-R deltas
if len(deltas) > 0 or len(canceled_trips) > 0 or len(added_stops) > 0: deltas, canceled_trips, added_stops = self.__poll_gtfsr_deltas()
# Only update deltas and canceled trips if the API returns data if len(deltas) > 0 or len(canceled_trips) > 0 or len(added_stops) > 0:
self.deltas = deltas # Only update deltas and canceled trips if the API returns data
self.canceled_trips = canceled_trips self.deltas = deltas
self.added_stops = added_stops self.canceled_trips = canceled_trips
self.added_stops = added_stops
arrivals = [] arrivals = []
# take more entries than we need in case there are cancelations # take more entries than we need in case there are cancelations
buses = self.get_next_n_buses(15) buses = self.get_next_n_buses(15)
for index, bus in buses.iterrows(): for index, bus in buses.iterrows():
if not bus["trip_id"] in self.canceled_trips: if not bus["trip_id"] in self.canceled_trips:
delta = self.deltas.get(bus["trip_id"], {}).get(bus["stop_id"], 0) delta = self.deltas.get(bus["trip_id"], {}).get(bus["stop_id"], 0)
if delta != 0: if delta != 0:
print("Delta for route {} stop {} is {}".format(bus["route_short_name"], bus["stop_id"], delta)) print("Delta for route {} stop {} is {}".format(bus["route_short_name"], bus["stop_id"], delta))
arrival = ArrivalTime(stop_id = bus["stop_code"], arrival = ArrivalTime(stop_id = bus["stop_code"],
route_id = bus["route_short_name"], route_id = bus["route_short_name"],
destination = bus["trip_headsign"], destination = bus["trip_headsign"],
due_in_seconds = self.__due_in_seconds(bus["arrival_time"]) + delta, due_in_seconds = self.__due_in_seconds(bus["arrival_time"]) + delta,
is_added = False is_added = False
) )
arrivals.append(arrival) arrivals.append(arrival)
if len(self.added_stops) > 0: if len(self.added_stops) > 0:
# Append the added stops from GTFS-R and re-sort # Append the added stops from GTFS-R and re-sort
arrivals.extend(self.added_stops) arrivals.extend(self.added_stops)
arrivals.sort() arrivals.sort()
# Select the first 5 of what remains # Select the first 5 of what remains
arrivals = arrivals[0:5] arrivals = arrivals[0:5]
if self._update_queue: if self._update_queue:
self._update_queue.put(arrivals) self._update_queue.put(arrivals)
gc.collect() gc.collect()
except Exception as e:
print("Exception in refresh: {}".format(str(e)))