Skip to content

Commit 3c99326

Browse files
author
Michael Klishin
committed
Tutorial 1 in Clojure
1 parent 54f5aac commit 3c99326

File tree

5 files changed

+97
-0
lines changed

5 files changed

+97
-0
lines changed

clojure/.gitignore

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/target
2+
/lib
3+
/classes
4+
/checkouts
5+
pom.xml
6+
pom.xml.asc
7+
*.jar
8+
*.class
9+
.lein-*
10+
bin/*

clojure/README.md

+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
# Clojure code for RabbitMQ tutorials
2+
3+
Here you can find Ruby code examples from
4+
[RabbitMQ tutorials](http://www.rabbitmq.com/getstarted.html).
5+
6+
## Requirements
7+
8+
To run this code you need [Langohr](http://clojurerabbitmq.info).
9+
10+
Dependencies are managed by [Leiningen](http://leiningen.org).
11+
12+
These tutorials only require JDK 6 or 7 (Oracle or OpenJDK).
13+
14+
## Code
15+
16+
Code examples are executed via `lein run`:
17+
18+
[Tutorial one: "Hello World!"](http://www.rabbitmq.com/tutorial-one-java.html):
19+
20+
lein run -m "rabbitmq.tutorials.send"
21+
lein run -m "rabbitmq.tutorials.receive"
22+
23+
[Tutorial two: Work Queues](http://www.rabbitmq.com/tutorial-two-java.html):
24+
25+
lein run -m "rabbitmq.tutorials.new-task"
26+
lein run -m "rabbitmq.tutorials.worker"
27+
28+
[Tutorial three: Publish/Subscribe](http://www.rabbitmq.com/tutorial-three-java.html)
29+
30+
ruby receive_logs.rb
31+
ruby emit_log.rb
32+
33+
[Tutorial four: Routing](http://www.rabbitmq.com/tutorial-four-java.html)
34+
35+
ruby receive_logs_direct.rb
36+
ruby emit_log_direct.rb
37+
38+
[Tutorial five: Topics](http://www.rabbitmq.com/tutorial-five-java.html)
39+
40+
ruby receive_logs_topic.rb
41+
ruby emit_log_topic.rb
42+
43+
[Tutorial six: RPC](http://www.rabbitmq.com/tutorial-six-java.html)
44+
45+
ruby rpc_server.rb
46+
ruby rpc_client.rb
47+
48+
To learn more, visit [Langohr documentation](http://clojurerabbitmq.info) site.

clojure/project.clj

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
(defproject com.rabbitmq/tutorials "1.0.0-SNAPSHOT"
2+
:description "RabbitMQ tutorials using Langohr"
3+
:url "http://github.com/rabbitmq/rabbitmq-tutorial"
4+
:license {:name "Eclipse Public License"
5+
:url "http://www.eclipse.org/legal/epl-v10.html"}
6+
:dependencies [[org.clojure/clojure "1.5.1"]
7+
[com.novemberain/langohr "1.3.0"]])
+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
(ns rabbitmq.tutorials.receive
2+
(:require [langohr.core :as lc]
3+
[langohr.channel :as lch]
4+
[langohr.queue :as lq]
5+
[langohr.consumers :as lcons]))
6+
7+
(defn handle-delivery
8+
"Handles message delivery"
9+
[ch metadata payload]
10+
(println (format " [x] Received %s" (String. payload "UTF-8"))))
11+
12+
(defn -main
13+
[& args]
14+
(with-open [conn (lc/connect)]
15+
(let [ch (lch/open conn)]
16+
(lq/declare ch "hello" :durable false :auto-delete false)
17+
(println " [*] Waiting for messages. To exit press CTRL+C")
18+
(lcons/blocking-subscribe ch "hello" handle-delivery :auto-ack true))))
+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
(ns rabbitmq.tutorials.send
2+
(:require [langohr.core :as lc]
3+
[langohr.channel :as lch]
4+
[langohr.queue :as lq]
5+
[langohr.basic :as lb]))
6+
7+
8+
(defn -main
9+
[& args]
10+
(with-open [conn (lc/connect)]
11+
(let [ch (lch/open conn)]
12+
(lq/declare ch "hello" :durable false :auto-delete false)
13+
(lb/publish ch "" "hello" (.getBytes "Hello World!" "UTF-8"))
14+
(println " [x] Sent 'Hello World!'"))))

0 commit comments

Comments
 (0)