aboutsummaryrefslogtreecommitdiff
path: root/src/com/github/ivarref/yoltq.clj
diff options
context:
space:
mode:
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 379d701..1ba286e 100644
--- a/src/com/github/ivarref/yoltq.clj
+++ b/src/com/github/ivarref/yoltq.clj
@@ -230,6 +230,29 @@
(sort-by (juxt :qname :status))
(vec))))
+(defn batch-progress [queue-name batch-name]
+ (let [{:keys [conn]} @*config*
+ db (d/db conn)]
+ (->> (d/q '[:find ?e ?qname ?bname ?status
+ :keys :e :qname :bname :status
+ :in $ ?qname ?bname
+ :where
+ [?e :com.github.ivarref.yoltq/queue-name ?qname]
+ [?e :com.github.ivarref.yoltq/batch-name ?bname]
+ [?e :com.github.ivarref.yoltq/status ?status]]
+ db queue-name batch-name)
+ (mapv #(select-keys % [:qname :bname :status]))
+ (mapv (fn [qitem] {qitem 1}))
+ (reduce (partial merge-with +) {})
+ (mapv (fn [[{:keys [qname bname status]} v]]
+ (array-map
+ :qname qname
+ :batch-name bname
+ :status status
+ :count v)))
+ (sort-by (juxt :qname :batch-name :status))
+ (vec))))
+
(defn get-errors [qname]
(let [{:keys [conn]} @*config*
db (d/db conn)]