Job lifecycle management: the JobEnqueue and WorkerExecution surfaces.
The system map passed to all functions must contain: :pool - HikariCP DataSource (from the database component) :validator - PayloadValidator (from the validation component)
Typical usage:
;; Build the system (def sys {:pool pool :validator validator})
;; Enqueue (add-job sys "send-email" {:to "x@y.com"} {:queue-name "email"})
;; Worker loop (let [jobs (get-jobs sys worker-id {:batch-size 5})] (doseq [job jobs] (try (run-task! job) (complete-jobs sys worker-id [job] elapsed-ms) (catch Exception e (fail-jobs sys worker-id [{:job job :error e}] elapsed-ms)))))
Job lifecycle management: the JobEnqueue and WorkerExecution surfaces.
The system map passed to all functions must contain:
:pool - HikariCP DataSource (from the database component)
:validator - PayloadValidator (from the validation component)
Typical usage:
;; Build the system
(def sys {:pool pool :validator validator})
;; Enqueue
(add-job sys "send-email" {:to "x@y.com"} {:queue-name "email"})
;; Worker loop
(let [jobs (get-jobs sys worker-id {:batch-size 5})]
(doseq [job jobs]
(try
(run-task! job)
(complete-jobs sys worker-id [job] elapsed-ms)
(catch Exception e
(fail-jobs sys worker-id [{:job job :error e}] elapsed-ms)))))Malli schemas for job-manager component.
Malli schemas for job-manager component.
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |