File tree 2 files changed +46
-0
lines changed
clojure/src/rabbitmq/tutorials
2 files changed +46
-0
lines changed Original file line number Diff line number Diff line change
1
+ (ns rabbitmq.tutorials.emit-log-topic
2
+ (:require [langohr.core :as lc]
3
+ [langohr.channel :as lch]
4
+ [langohr.exchange :as le]
5
+ [langohr.basic :as lb]
6
+ [clojure.string :as s]))
7
+
8
+ (def ^{:const true } x " topic_logs" )
9
+
10
+ (defn -main
11
+ [severity & args]
12
+ (with-open [conn (lc/connect )]
13
+ (let [ch (lch/open conn)
14
+ severity (or severity " anonymous.info" )
15
+ payload (if (empty? args)
16
+ " Hello, world!"
17
+ (s/join " " args))]
18
+ (le/topic ch x :durable false :auto-delete false )
19
+ (lb/publish ch x severity payload)
20
+ (println (format " [x] Sent %s" payload)))))
Original file line number Diff line number Diff line change
1
+ (ns rabbitmq.tutorials.receive-logs-topic
2
+ (:require [langohr.core :as lc]
3
+ [langohr.channel :as lch]
4
+ [langohr.exchange :as le]
5
+ [langohr.queue :as lq]
6
+ [langohr.basic :as lb]
7
+ [langohr.consumers :as lcons]))
8
+
9
+ (def ^{:const true } x " topic_logs" )
10
+
11
+ (defn handle-delivery
12
+ " Handles message delivery"
13
+ [ch {:keys [routing-key]} payload]
14
+ (println (format " [x] %s:%s" routing-key (String. payload " UTF-8" ))))
15
+
16
+
17
+ (defn -main
18
+ [& args]
19
+ (with-open [conn (lc/connect )]
20
+ (let [ch (lch/open conn)
21
+ {:keys [queue]} (lq/declare ch " " :durable false :auto-delete false )]
22
+ (le/topic ch x :durable false :auto-delete false )
23
+ (doseq [severity args]
24
+ (lq/bind ch queue x :routing-key severity))
25
+ (println " [*] Waiting for logs. To exit press CTRL+C" )
26
+ (lcons/blocking-subscribe ch queue handle-delivery))))
You can’t perform that action at this time.
0 commit comments