Advertisement
Guest User

Untitled

a guest
Dec 3rd, 2016
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.99 KB | None | 0 0
  1. (ns packaging-api.rabbitmq.main
  2. (:require [clojure.tools.logging :refer [debug]]
  3. [packaging-api.properties :refer [parse-property]]
  4. [cheshire.core :as json])
  5. (:import (org.springframework.amqp.rabbit.core RabbitTemplate)
  6. (org.springframework.amqp.rabbit.connection CachingConnectionFactory)))
  7.  
  8.  
  9. (def connection (atom nil))
  10. (def rabbit (atom nil))
  11.  
  12. (defn start! []
  13. (let [cf (doto (CachingConnectionFactory. (parse-property :mq.hosts) (parse-property :mq.port))
  14. (.setVirtualHost (parse-property :mq.vhost))
  15. (.setUsername (parse-property :mq.user))
  16. (.setPassword (parse-property :mq.pass)))
  17. template (RabbitTemplate. cf)]
  18. (swap! connection (fn [x] cf))
  19. (swap! rabbit (fn [x] template))))
  20.  
  21. (defn publish! [exchange routing-key payload-map]
  22. (.convertAndSend @rabbit exchange routing-key (json/generate-string payload-map)))
  23.  
  24. (defn stop! []
  25. (when (and @connection (.isRunning @connection))
  26. (.stop @connection)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement