8000 GitHub - alishamohanty/goose: The Next-Level background job processing library for Clojure
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
forked from nilenso/goose

The Next-Level background job processing library for Clojure

License

Notifications You must be signed in to change notification settings

alishamohanty/goose

 
 

Repository files navigation

Goose

Test & Lint Workflow Clojars Project cljdoc badge

The Next-Level background job processing library for Clojure.

Simple. Pluggable. Reliable. Extensible. Scalable.

Performance

Please refer to the Benchmarking section.

Features

Getting Started

Clojars Project

Add Goose as a dependency

;;; Clojure CLI/deps.edn
com.nilenso/goose {:mvn/version "0.5.0"}

;;; Leiningen/Boot
[com.nilenso/goose "0.5.0"]

Client

(ns my-app
  (:require
    [goose.brokers.rmq.broker :as rmq]
    [goose.client :as c]))

(defn my-fn
  [arg1 arg2]
  (println "my-fn called with" arg1 arg2))

(let [rmq-producer (rmq/new-producer rmq/default-opts)
      ;; Along with RabbitMQ, Goose supports Redis as well.
      client-opts (assoc c/default-opts :broker rmq-producer)]
  ;; Supply a fully-qualified function symbol for enqueuing.
  ;; Args to perform-async are variadic.
  (c/perform-async client-opts `my-fn "foo" :bar)
  (c/perform-in-sec client-opts 900 `my-fn "foo" :bar)
  ;; When shutting down client...
  (rmq/close rmq-producer))

Worker

(ns my-worker
  (:require
    [goose.brokers.rmq.broker :as rmq]
    [goose.worker :as w]))

;;; 'my-app' namespace should be resolvable by worker.
(let [rmq-consumer (rmq/new-consumer rmq/default-opts)
      ;; Along with RabbitMQ, Goose supports Redis as well.
      worker-opts (assoc w/default-opts :broker rmq-consumer)
      worker (w/start worker-opts)]
  ;; When shutting down worker...
  (w/stop worker) ; Performs graceful shutsdown.
  (rmq/close rmq-consumer))

Refer to wiki for Redis, Periodic Jobs, Error Handling, Monitoring, Production Readiness, etc.

Getting Help

Get help on Slack

Please open an issue or ping us on #goose @Clojurians slack.

Companies using Goose in Production

Contributing

Why the name "Goose"?

Named after LT Nick 'Goose' Bradshaw, the sidekick to Captain Pete 'Maverick' Mitchell in Top Gun.

License

Licence

About

The Next-Level background job processing library for Clojure

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Clojure 95.2%
  • CSS 2.1%
  • JavaScript 1.6%
  • Shell 1.1%
0