Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (ns packaging-api.rabbitmq.main
- (:require [clojure.tools.logging :refer [debug]]
- [packaging-api.properties :refer [parse-property]]
- [cheshire.core :as json])
- (:import (org.springframework.amqp.rabbit.core RabbitTemplate)
- (org.springframework.amqp.rabbit.connection CachingConnectionFactory)))
- (def connection (atom nil))
- (def rabbit (atom nil))
- (defn start! []
- (let [cf (doto (CachingConnectionFactory. (parse-property :mq.hosts) (parse-property :mq.port))
- (.setVirtualHost (parse-property :mq.vhost))
- (.setUsername (parse-property :mq.user))
- (.setPassword (parse-property :mq.pass)))
- template (RabbitTemplate. cf)]
- (swap! connection (fn [x] cf))
- (swap! rabbit (fn [x] template))))
- (defn publish! [exchange routing-key payload-map]
- (.convertAndSend @rabbit exchange routing-key (json/generate-string payload-map)))
- (defn stop! []
- (when (and @connection (.isRunning @connection))
- (.stop @connection)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement