Restrict reminder selection to one-per-guild during fetch loop
This commit is contained in:
@ -38,7 +38,7 @@ async fn _initialize(ctx: Context, pool: impl Executor<'_, Database = Database>
|
||||
let reminders = sender::Reminder::fetch_reminders(pool).await;
|
||||
|
||||
if reminders.len() > 0 {
|
||||
info!("Preparing to send {} reminders.", reminders.len());
|
||||
println!("Preparing to send {} reminders.", reminders.len());
|
||||
|
||||
for reminder in reminders {
|
||||
reminder.send(pool, ctx.clone()).await;
|
||||
|
@ -292,6 +292,16 @@ INNER JOIN
|
||||
ON
|
||||
reminders.channel_id = channels.id
|
||||
WHERE
|
||||
reminders.id IN (
|
||||
SELECT
|
||||
MIN(reminders.id)
|
||||
FROM reminders
|
||||
INNER JOIN
|
||||
channels
|
||||
ON reminders.channel_id = channels.id
|
||||
WHERE reminders.`utc_time` < NOW()
|
||||
GROUP BY channels.guild_id
|
||||
) AND
|
||||
reminders.`utc_time` < NOW()"#,
|
||||
)
|
||||
.fetch_all(pool)
|
||||
|
Reference in New Issue
Block a user