aboutsummaryrefslogtreecommitdiff
path: root/test/com/github/ivarref/yoltq/readme_demo.clj
blob: eae0a3e64d364c20534f3309366800357f20eabb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
(ns com.github.ivarref.yoltq.readme-demo
  (:require [clojure.tools.logging :as log]
            [datomic.api :as d]
            [com.github.ivarref.yoltq :as yq])
  (:import (java.util UUID)))


(defonce conn
  (let [uri (str "datomic:mem://hello-world-" (UUID/randomUUID))]
    (d/delete-database uri)
    (d/create-database uri)
    (d/connect uri)))


(com.github.ivarref.yoltq.log-init/init-logging!
  [[#{"datomic.*" "com.datomic.*" "org.apache.*"} :warn]
   [#{"com.github.ivarref.yoltq.report-queue"} :debug]
   [#{"com.github.ivarref.yoltq.poller"} :info]
   [#{"com.github.ivarref.yoltq*"} :debug]
   [#{"*"} :info]])


(yq/stop!)

(yq/init! {:conn conn})


(yq/add-consumer! :q
                  (let [cnt (atom 0)]
                    (fn [payload]
                      (when (= 1 (swap! cnt inc))
                        (throw (ex-info "failed" {})))
                      (log/info "got payload" payload))))

(yq/start!)

@(d/transact conn [(yq/put :q {:work 123})])

(comment
  (yq/add-consumer! :q (fn [_] (throw (ex-info "always fail" {})))))

(comment
  @(d/transact conn [(yq/put :q {:work 123})]))

(comment
  (do
    (yq/add-consumer! :q (fn [_] :ok))
    nil))