From 83ae73d8d05bac3d28638deafb7049eaad49ac2b Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Sat, 17 Jun 2023 18:05:34 -0700 Subject: [PATCH] improperly counting successes --- .../inference_job/src/job/job_loop/main_loop.rs | 16 ++++++++++++++-- .../src/job/job_loop/process_single_job_error.rs | 3 +++ .../job_loop/process_single_job_success_case.rs | 2 +- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/crates/service/job/inference_job/src/job/job_loop/main_loop.rs b/crates/service/job/inference_job/src/job/job_loop/main_loop.rs index 97de6c956b..54505f73f5 100644 --- a/crates/service/job/inference_job/src/job/job_loop/main_loop.rs +++ b/crates/service/job/inference_job/src/job/job_loop/main_loop.rs @@ -10,6 +10,7 @@ use mysql_queries::queries::generic_inference::job::mark_generic_inference_job_c use mysql_queries::queries::generic_inference::job::mark_generic_inference_job_failure::mark_generic_inference_job_failure; use std::time::Duration; use filesys::file_exists::file_exists; +use crate::job::job_loop::process_single_job_success_case::ProcessSingleJobSuccessCase; // Job runner timeouts (guards MySQL) const START_TIMEOUT_MILLIS : u64 = 500; @@ -96,8 +97,19 @@ async fn process_job_batch(job_dependencies: &JobDependencies, jobs: Vec { - let _stats = job_dependencies.job_stats.increment_success_count().ok(); + Ok(success_case) => { + info!("Job loop iteration \"success\": {:?}", success_case); + + let increment_success_count = match success_case { + ProcessSingleJobSuccessCase::JobCompleted => true, + ProcessSingleJobSuccessCase::JobTemporarilySkippedFilesAbsent => false, + ProcessSingleJobSuccessCase::JobSkippedForRoutingTagMismatch => false, + ProcessSingleJobSuccessCase::LockNotObtained => false, + }; + + if increment_success_count { + let _stats = job_dependencies.job_stats.increment_success_count().ok(); + } }, Err(e) => { warn!("Failure to process job: {:?}", e); diff --git a/crates/service/job/inference_job/src/job/job_loop/process_single_job_error.rs b/crates/service/job/inference_job/src/job/job_loop/process_single_job_error.rs index 299c5e9599..662bc8755b 100644 --- a/crates/service/job/inference_job/src/job/job_loop/process_single_job_error.rs +++ b/crates/service/job/inference_job/src/job/job_loop/process_single_job_error.rs @@ -8,6 +8,9 @@ pub enum ProcessSingleJobError { /// The job is invalid (bad state, etc.) InvalidJob(anyhow::Error), /// The job's keepalive signal has elapsed, so the job needs to be killed. + /// The keepalive signal is typically for non-premium users only and it + /// makes sure they're still on the website. It kills jobs they leave + /// running when they bounce so that we can free up their capacity. KeepAliveElapsed, /// This is any other kind of error. /// It might be important, we just haven't special cased it yet. diff --git a/crates/service/job/inference_job/src/job/job_loop/process_single_job_success_case.rs b/crates/service/job/inference_job/src/job/job_loop/process_single_job_success_case.rs index 7dcb4de802..a0d88d8330 100644 --- a/crates/service/job/inference_job/src/job/job_loop/process_single_job_success_case.rs +++ b/crates/service/job/inference_job/src/job/job_loop/process_single_job_success_case.rs @@ -1,5 +1,5 @@ -#[derive(Copy, Clone)] +#[derive(Copy, Clone, Debug)] pub enum ProcessSingleJobSuccessCase { /// Job was successfully completed. JobCompleted,