aboutsummaryrefslogtreecommitdiff
path: root/src/com/github/ivarref/yoltq.clj
diff options
context:
space:
mode:
authorire <refsdal.ivar@gmail.com>2025-09-22 11:20:50 +0200
committerire <refsdal.ivar@gmail.com>2025-09-22 11:20:50 +0200
commitbfd0d662f1ef212ab194ce3f78b04dc527f42d95 (patch)
treec2f19875e64c3363d29c57b060ba61dd2ef53e20 /src/com/github/ivarref/yoltq.clj
parentUpdate for release (diff)
parentAdded documentation for job-group feature (diff)
downloadfiinha-bfd0d662f1ef212ab194ce3f78b04dc527f42d95.tar.gz
fiinha-bfd0d662f1ef212ab194ce3f78b04dc527f42d95.tar.xz
Merge branch 'batches-of-jobs'
Diffstat (limited to 'src/com/github/ivarref/yoltq.clj')
-rw-r--r--src/com/github/ivarref/yoltq.clj23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/com/github/ivarref/yoltq.clj b/src/com/github/ivarref/yoltq.clj
index 0f63e25..8c8ca7a 100644
--- a/src/com/github/ivarref/yoltq.clj
+++ b/src/com/github/ivarref/yoltq.clj
@@ -257,6 +257,29 @@
(sort-by (juxt :qname :status))
(vec))))
+(defn job-group-progress [queue-name job-group]
+ (let [{:keys [conn]} @*config*
+ db (d/db conn)]
+ (->> (d/q '[:find ?e ?qname ?job-group ?status
+ :keys :e :qname :job-group :status
+ :in $ ?qname ?job-group
+ :where
+ [?e :com.github.ivarref.yoltq/queue-name ?qname]
+ [?e :com.github.ivarref.yoltq/job-group ?job-group]
+ [?e :com.github.ivarref.yoltq/status ?status]]
+ db queue-name job-group)
+ (mapv #(select-keys % [:qname :job-group :status]))
+ (mapv (fn [qitem] {qitem 1}))
+ (reduce (partial merge-with +) {})
+ (mapv (fn [[{:keys [qname job-group status]} v]]
+ (array-map
+ :qname qname
+ :job-group job-group
+ :status status
+ :count v)))
+ (sort-by (juxt :qname :job-group :status))
+ (vec))))
+
(defn get-errors [qname]
(let [{:keys [conn]} @*config*
db (d/db conn)]