Skip to content

Commit

Permalink
Move connection creation into scheduler.
Browse files Browse the repository at this point in the history
  • Loading branch information
dessalines committed Jun 15, 2023
1 parent 5af831c commit dd26f0f
Showing 1 changed file with 13 additions and 8 deletions.
21 changes: 13 additions & 8 deletions src/scheduled_tasks.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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
Expand Down

0 comments on commit dd26f0f

Please sign in to comment.