diff --git a/database/src/pool.rs b/database/src/pool.rs index d1c8c55ff..95552d3e3 100644 --- a/database/src/pool.rs +++ b/database/src/pool.rs @@ -22,6 +22,9 @@ pub trait Connection: Send + Sync { async fn load_index(&mut self) -> Index; + /// Returns true if the given database backend supports the job queue system. + fn supports_job_queue(&self) -> bool; + /// None means that the caller doesn't know; it should be left alone if /// known or set to false if unknown. async fn record_compile_benchmark( diff --git a/database/src/pool/postgres.rs b/database/src/pool/postgres.rs index c977ea4c2..19fbb2e90 100644 --- a/database/src/pool/postgres.rs +++ b/database/src/pool/postgres.rs @@ -2335,6 +2335,10 @@ where .await?; Ok(()) } + + fn supports_job_queue(&self) -> bool { + true + } } fn row_to_benchmark_request(row: &Row, row_offset: Option) -> BenchmarkRequest { diff --git a/database/src/pool/sqlite.rs b/database/src/pool/sqlite.rs index eae0432e1..6434ddd54 100644 --- a/database/src/pool/sqlite.rs +++ b/database/src/pool/sqlite.rs @@ -1303,7 +1303,9 @@ impl Connection for SqliteConnection { } async fn load_benchmark_request_index(&self) -> anyhow::Result { - no_queue_implementation_abort!() + Ok(BenchmarkRequestIndex { + all: Default::default(), + }) } async fn load_pending_benchmark_requests(&self) -> anyhow::Result { @@ -1438,6 +1440,10 @@ impl Connection for SqliteConnection { ) -> anyhow::Result> { no_queue_implementation_abort!() } + + fn supports_job_queue(&self) -> bool { + false + } } fn parse_artifact_id(ty: &str, sha: &str, date: Option) -> ArtifactId { diff --git a/site/src/job_queue/mod.rs b/site/src/job_queue/mod.rs index 45622bf12..e0fb1d200 100644 --- a/site/src/job_queue/mod.rs +++ b/site/src/job_queue/mod.rs @@ -366,6 +366,9 @@ async fn process_benchmark_requests( /// finishes completed benchmark requests. async fn perform_queue_tick(ctxt: &SiteCtxt) -> anyhow::Result<()> { let mut conn = ctxt.conn().await; + if !conn.supports_job_queue() { + return Ok(()); + } let index = ctxt.known_benchmark_requests.load();