Skip to content

Commit 6a40149

Browse files
Preslav LeConvex, Inc.
Preslav Le
authored and
Convex, Inc.
committed
Backend set scheduler lag to zero if no pending work. (#25331)
GitOrigin-RevId: 73b0322d65636789f53a3c712b58909352d704f2
1 parent bcd5366 commit 6a40149

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

crates/application/src/scheduled_jobs/metrics.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,3 +45,11 @@ register_convex_gauge!(
4545
pub fn log_scheduled_job_execution_lag(lag: Duration) {
4646
log_gauge(&SCHEDULED_JOB_EXECUTION_LAG_SECONDS, lag.as_secs_f64());
4747
}
48+
49+
register_convex_gauge!(
50+
SCHEDULED_JOB_NUM_RUNNING_TOTAL,
51+
"Number of currently executing scheduled jobs"
52+
);
53+
pub fn log_num_running_jobs(num_running: usize) {
54+
log_gauge(&SCHEDULED_JOB_NUM_RUNNING_TOTAL, num_running as f64);
55+
}

crates/application/src/scheduled_jobs/mod.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,7 @@ impl<RT: Runtime> ScheduledJobExecutor<RT> {
257257
.await?
258258
};
259259

260+
metrics::log_num_running_jobs(running_job_ids.len());
260261
let next_job_future = if let Some(next_job_ts) = next_job_ready_time {
261262
let now = self.rt.generate_timestamp()?;
262263
Either::Left(if next_job_ts < now {
@@ -265,9 +266,11 @@ impl<RT: Runtime> ScheduledJobExecutor<RT> {
265266
// track how far we're behind in our metrics.
266267
self.rt.wait(Duration::from_secs(5))
267268
} else {
269+
metrics::log_scheduled_job_execution_lag(Duration::from_secs(0));
268270
self.rt.wait(next_job_ts - now)
269271
})
270272
} else {
273+
metrics::log_scheduled_job_execution_lag(Duration::from_secs(0));
271274
Either::Right(std::future::pending())
272275
};
273276

0 commit comments

Comments
 (0)