fix (reminders): Ignore old reminders.

This commit is contained in:
2023-08-18 23:15:08 +03:00
parent 10084089f1
commit 161bc91468

View File

@@ -65,7 +65,6 @@ class ReminderData(Registry, name='reminders'):
CREATE INDEX reminder_users ON reminders (userid); CREATE INDEX reminder_users ON reminders (userid);
""" """
_tablename_ = 'reminders' _tablename_ = 'reminders'
_cache_ = WeakCache(LRUCache(1000))
reminderid = Integer(primary=True) reminderid = Integer(primary=True)
@@ -181,7 +180,7 @@ class Reminders(LionCog):
if self.executor: if self.executor:
self.monitor: Optional[ReminderMonitor] = ReminderMonitor( self.monitor: Optional[ReminderMonitor] = ReminderMonitor(
executor=self.execute_reminder, executor=self.execute_reminder,
bucket=Bucket(1, 1) bucket=Bucket(5, 10)
) )
else: else:
self.monitor = None self.monitor = None
@@ -207,7 +206,7 @@ class Reminders(LionCog):
self.monitor._monitor_task.cancel() self.monitor._monitor_task.cancel()
# Attach and populate the reminder monitor # Attach and populate the reminder monitor
self.monitor = ReminderMonitor(executor=self.execute_reminder, bucket=Bucket(1, 1)) self.monitor = ReminderMonitor(executor=self.execute_reminder, bucket=Bucket(5, 10))
await self.reload_reminders() await self.reload_reminders()
# Start firing reminders # Start firing reminders
@@ -242,7 +241,10 @@ class Reminders(LionCog):
if not self.executor: if not self.executor:
raise ValueError("Only the executor shard can reload reminders!") raise ValueError("Only the executor shard can reload reminders!")
# Load all reminder tasks # Load all reminder tasks
reminders = await self.data.Reminder.fetch_where(failed=None) reminders = await self.data.Reminder.fetch_where(
self.data.Reminder.remind_at > utc_now(),
failed=None
)
tasks = [(r.reminderid, r.timestamp) for r in reminders] tasks = [(r.reminderid, r.timestamp) for r in reminders]
self.monitor.set_tasks(*tasks) self.monitor.set_tasks(*tasks)
logger.info( logger.info(