Simple, Reliable & Scalable background processing library for Clojure.
Please refer to the Benchmarking section.
- Reliable - Code/Hardware/Network failure won't cause data loss
- Transparent Design & Cloud-Native Architecture
- Scheduling
- Error Handling & Retries
- Concurrency & Parallelism using Java thread-pools
- Unit, Integration & Performance Tests
For details, refer to Goose Wiki.
(ns my-app
(:require [goose.client :as c]))
(defn my-fn
[arg1 arg2]
(println "my-fn called with" arg1 arg2))
; Supply a fully-qualified function symbol for enqueuing.
; Args to perform-async are variadic.
(c/perform-async c/default-opts `my-fn "foo" :bar)
(ns my-worker
(:require [goose.worker :as w]))
; my-app namespace should be resolvable.
(let [worker (w/start w/default-opts)]
; ... listen for SIGINT or SIGTERM ...
(w/stop worker))
Please open an issue or ping us on #goose @Clojurians slack.
🦆 Logo loading...
Goose library is named after Nick 'Goose' Bradshaw, the sidekick to Captain Pete 'Maverick' Mitchell in Top Gun.