diff --git a/src/scheduled_tasks.rs b/src/scheduled_tasks.rs index e42100b89e..10b753b8f2 100644 --- a/src/scheduled_tasks.rs +++ b/src/scheduled_tasks.rs @@ -32,9 +32,6 @@ pub fn setup(db_url: String, user_agent: String) -> Result<(), LemmyError> { let mut scheduler = Scheduler::new(); let mut conn_1 = PgConnection::establish(&db_url).expect("could not establish connection"); - let mut conn_2 = PgConnection::establish(&db_url).expect("could not establish connection"); - let mut conn_3 = PgConnection::establish(&db_url).expect("could not establish connection"); - let mut conn_4 = PgConnection::establish(&db_url).expect("could not establish connection"); // Run on startup active_counts(&mut conn_1); @@ -43,23 +40,31 @@ pub fn setup(db_url: String, user_agent: String) -> Result<(), LemmyError> { clear_old_activities(&mut conn_1); // Update active counts every hour + let url = db_url.to_owned(); scheduler.every(CTimeUnits::hour(1)).run(move || { - active_counts(&mut conn_1); - update_banned_when_expired(&mut conn_1); + let mut conn_2 = PgConnection::establish(&url).expect("could not establish connection"); + active_counts(&mut conn_2); + update_banned_when_expired(&mut conn_2); }); // Update hot ranks every 5 minutes + let url = db_url.to_owned(); scheduler.every(CTimeUnits::minutes(5)).run(move || { - update_hot_ranks(&mut conn_2, true); + let mut conn_3 = PgConnection::establish(&url).expect("could not establish connection"); + update_hot_ranks(&mut conn_3, true); }); // Clear old activities every week + let url = db_url.to_owned(); scheduler.every(CTimeUnits::weeks(1)).run(move || { - clear_old_activities(&mut conn_3); + let mut conn_4 = PgConnection::establish(&url).expect("could not establish connection"); + clear_old_activities(&mut conn_4); }); + // Update the Instance Software scheduler.every(CTimeUnits::days(1)).run(move || { - update_instance_software(&mut conn_4, &user_agent); + let mut conn_5 = PgConnection::establish(&db_url).expect("could not establish connection"); + update_instance_software(&mut conn_5, &user_agent); }); // Manually run the scheduler in an event loop