use diesel::{sql_query, PgConnection, RunQueryDsl};
use lemmy_api_common::context::LemmyContext;
use lemmy_db_schema::{
- schema::{activity, comment, community_person_ban, instance, person, post},
+ schema::{activity, captcha_answer, comment, community_person_ban, instance, person, post},
source::instance::{Instance, InstanceForm},
utils::{naive_now, DELETED_REPLACEMENT_TEXT},
};
update_hot_ranks(&mut conn, true);
});
+ // Delete any captcha answers older than ten minutes, every ten minutes
+ let url = db_url.clone();
+ scheduler.every(CTimeUnits::minutes(10)).run(move || {
+ let mut conn = PgConnection::establish(&url).expect("could not establish connection");
+ delete_expired_captcha_answers(&mut conn);
+ });
+
// Clear old activities every week
let url = db_url.clone();
scheduler.every(CTimeUnits::weeks(1)).run(move || {
);
}
+fn delete_expired_captcha_answers(conn: &mut PgConnection) {
+ match diesel::delete(
+ captcha_answer::table.filter(captcha_answer::published.lt(now - IntervalDsl::minutes(10))),
+ )
+ .execute(conn)
+ {
+ Ok(_) => {
+ info!("Done.");
+ }
+ Err(e) => {
+ error!("Failed to clear old captcha answers: {}", e)
+ }
+ }
+}
+
/// Clear old activities (this table gets very large)
fn clear_old_activities(conn: &mut PgConnection) {
info!("Clearing old activities...");
for i in &intervals {
let update_site_stmt = format!(
- "update site_aggregates set users_active_{} = (select * from site_aggregates_activity('{}'))",
+ "update site_aggregates set users_active_{} = (select * from site_aggregates_activity('{}')) where site_id = 1",
i.1, i.0
);
match sql_query(update_site_stmt).execute(conn) {