From 845ac7332afe3be8dac63cebd01e38f702b9a1f8 Mon Sep 17 00:00:00 2001 From: Sean Griffin Date: Mon, 11 Mar 2019 10:35:36 -0600 Subject: [PATCH] Remove the worker dyno We're paying for a dyno that spends 90% of its time sleeping. A repeating task like this is better handled by a cron-like tool (heroku scheduler in our case), especially for something non-critical like updating download counts. --- Procfile | 1 - src/bin/update-downloads.rs | 19 +++++-------------- 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/Procfile b/Procfile index 4636a18fee8..d9f995f8543 100644 --- a/Procfile +++ b/Procfile @@ -1,3 +1,2 @@ web: bin/diesel migration run && bin/start-nginx ./target/release/server -worker: ./target/release/update-downloads daemon 300 background_worker: ./target/release/background-worker diff --git a/src/bin/update-downloads.rs b/src/bin/update-downloads.rs index e28a7512355..b31394d5e57 100644 --- a/src/bin/update-downloads.rs +++ b/src/bin/update-downloads.rs @@ -7,26 +7,17 @@ use cargo_registry::{ db, models::VersionDownload, schema::{crate_downloads, crates, metadata, version_downloads, versions}, + util::CargoResult, }; -use std::{env, thread, time::Duration}; use diesel::prelude::*; static LIMIT: i64 = 1000; -fn main() { - let daemon = env::args().nth(1).as_ref().map(|s| &s[..]) == Some("daemon"); - let sleep = env::args().nth(2).map(|s| s.parse().unwrap()); - loop { - let conn = db::connect_now().unwrap(); - update(&conn).unwrap(); - drop(conn); - if daemon { - thread::sleep(Duration::new(sleep.unwrap(), 0)); - } else { - break; - } - } +fn main() -> CargoResult<()> { + let conn = db::connect_now()?; + update(&conn)?; + Ok(()) } fn update(conn: &PgConnection) -> QueryResult<()> {