diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/dbctx.rs | 10 | ||||
-rw-r--r-- | src/sql.rs | 4 |
2 files changed, 11 insertions, 3 deletions
diff --git a/src/dbctx.rs b/src/dbctx.rs index f5f900a..e224310 100644 --- a/src/dbctx.rs +++ b/src/dbctx.rs @@ -549,10 +549,18 @@ impl DbCtx { } pub fn jobs_needing_task_runs_for_host(&self, host_id: u64) -> Result<Vec<Job>, String> { + // for jobs that this host has not run, we'll arbitrarily say that we won't generate new + // runs for jobs more than a day old. + // + // we don't want to rebuild the entire history every time we see a new host by default; if + // you really want to rebuild all of history on a new host, use `ci_ctl` to prepare the + // runs. + let cutoff = crate::io::now_ms() - 24 * 3600 * 1000; + let conn = self.conn.lock().unwrap(); let mut jobs_needing_task_runs = conn.prepare(sql::JOBS_NEEDING_HOST_RUN).unwrap(); - let mut job_rows = jobs_needing_task_runs.query([host_id]).unwrap(); + let mut job_rows = jobs_needing_task_runs.query([cutoff, host_id]).unwrap(); let mut jobs = Vec::new(); while let Some(row) = job_rows.next().unwrap() { @@ -144,9 +144,9 @@ pub const PENDING_RUNS: &'static str = "\ pub const JOBS_NEEDING_HOST_RUN: &'static str = "\ select jobs.id, jobs.source, jobs.created_time, jobs.remote_id, jobs.commit_id, jobs.run_preferences from jobs \ - where jobs.run_preferences=\"all\" \ + where jobs.run_preferences=\"all\" and jobs.created_time > ?1 \ and not exists \ - (select 1 from runs r2 where r2.job_id = jobs.id and r2.host_id = ?1);"; + (select 1 from runs r2 where r2.job_id = jobs.id and r2.host_id = ?2);"; pub const ACTIVE_RUNS: &'static str = "\ select id, |