mirror of
https://git.asonix.dog/asonix/background-jobs.git
synced 2024-11-21 19:40:59 +00:00
Filter by job-readiness as well
This commit is contained in:
parent
0a509e0271
commit
dfba0cf7f2
2 changed files with 6 additions and 1 deletions
|
@ -1,7 +1,7 @@
|
|||
[package]
|
||||
name = "background-jobs-sled-storage"
|
||||
description = "Sled storage backend for background-jobs"
|
||||
version = "0.1.1"
|
||||
version = "0.1.2"
|
||||
license = "GPL-3.0"
|
||||
authors = ["asonix <asonix@asonix.dog>"]
|
||||
repository = "https://git.asonix.dog/Aardwolf/background-jobs"
|
||||
|
@ -12,6 +12,7 @@ edition = "2018"
|
|||
|
||||
[dependencies]
|
||||
background-jobs-core = { version = "0.5", path = "../jobs-core" }
|
||||
chrono = "0.4"
|
||||
failure = "0.1"
|
||||
sled = "0.24"
|
||||
serde = "1.0"
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
use background_jobs_core::{JobInfo, Storage, Stats};
|
||||
use chrono::offset::Utc;
|
||||
|
||||
mod error;
|
||||
mod sled_wrappers;
|
||||
|
@ -41,12 +42,15 @@ impl Storage for SledStorage {
|
|||
let job_tree = self.jobinfo.clone();
|
||||
|
||||
self.lock_queue(queue, move || {
|
||||
let now = Utc::now();
|
||||
|
||||
let job = queue_tree
|
||||
.iter()
|
||||
.filter_map(|res| res.ok())
|
||||
.filter_map(|(id, in_queue)| if queue == in_queue { Some(id) } else { None })
|
||||
.filter_map(|id| job_tree.get(id).ok())
|
||||
.filter_map(|opt| opt)
|
||||
.filter(|job| job.is_ready(now))
|
||||
.next();
|
||||
|
||||
if let Some(ref job) = job {
|
||||
|
|
Loading…
Reference in a new issue