aboutsummaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs51
1 files changed, 2 insertions, 49 deletions
diff --git a/src/main.rs b/src/main.rs
index 93d4d2b..e4f2014 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -5,55 +5,8 @@
#![feature(box_patterns)]
#![allow(deprecated)]
-use std::time::{
- Duration,
- Instant,
-};
-
-use log::{
- error,
- info,
-};
-
-const BACKOFF_FACTOR: f64 = 2.0;
-const MAX_BACKOFFS: usize = 3;
-const BACKOFF_INIT: f64 = 100.0;
-
-const MIN_RUN_DURATION: Duration = Duration::from_secs(120);
-
#[tokio::main]
-async fn main() {
+async fn main() -> anyhow::Result<()> {
thulani::log_setup::init(false).expect("initializing logging");
-
- let mut backoff_count: usize = 0;
-
- loop {
- let start = Instant::now();
-
- info!("starting bot");
- match thulani::bot::run().await {
- Err(e) => {
- error!("error encountered running client: {:?}", e);
- },
- _ => {
- // NOTE: we MUST have gotten here through SIGINT/SIGTERM handlers
- std::process::exit(0);
- },
- }
-
- if Instant::now() - start >= MIN_RUN_DURATION {
- backoff_count = 0;
- continue;
- }
-
- backoff_count += 1;
- if backoff_count >= MAX_BACKOFFS {
- panic!("restarted bot too many times");
- }
-
- let backoff_millis = (BACKOFF_INIT * BACKOFF_FACTOR.powi(backoff_count as i32)) as u64;
- info!("bot died too quickly. backing off, retrying in {}ms.", backoff_millis);
-
- tokio::time::sleep(Duration::from_millis(backoff_millis)).await;
- }
+ thulani::bot::run().await
}