Scheduling - Check for outstanding orders on start

This commit is contained in:
Johnny Gear 2025-11-13 22:03:20 -06:00
parent b2788d0289
commit 49a2403886

View file

@ -14,14 +14,26 @@ logger = logging.getLogger(__name__)
SATURDAY = 5 SATURDAY = 5
SUNDAY = 6 SUNDAY = 6
GRACE_PERIOD = datetime.timedelta(seconds=10)
class OrderScheduler(): class OrderScheduler():
def __init__(self, loop): def __init__(self, loop):
self.tz = pytz.timezone(TIMEZONE) self.tz = pytz.timezone(TIMEZONE)
self.scheduler = Scheduler(loop=loop, tzinfo=self.tz) self.scheduler = Scheduler(loop=loop, tzinfo=self.tz)
# Regularly scheduled orders
order_time_dt = order_time() order_time_dt = order_time()
self.scheduler.daily(order_time_dt, self.scheduled_order) self.scheduler.daily(order_time_dt, self.scheduled_order)
# Schedule any outstanding orders
db = Database()
outstanding_orders = db.order_status_outstanding()
for oo in outstanding_orders:
self.scheduler.once(
datetime.datetime.fromisoformat(oo['created_at']) + ORDER_TIMEOUT + GRACE_PERIOD,
self.scheduled_check
)
logger.info(self.scheduler) logger.info(self.scheduler)
@ -46,7 +58,7 @@ class OrderScheduler():
self.scheduler.once( self.scheduler.once(
datetime.datetime.now(tz=self.tz) + datetime.datetime.now(tz=self.tz) +
ORDER_TIMEOUT + ORDER_TIMEOUT +
datetime.timedelta(seconds=10), GRACE_PERIOD,
self.scheduled_check self.scheduled_check
) )