Skip to content

Commit 68acb1c

Browse files
committed
add producer
1 parent a30afa1 commit 68acb1c

File tree

4 files changed

+27
-4
lines changed

4 files changed

+27
-4
lines changed

clojure/wheel/resources/config.edn

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111
:qmgr #or [#env "WHEEL_APP_MQ_QMGR" "QM1"]
1212
:user-id #or [#env "WHEEL_APP_MQ_USER_ID" "app"]
1313
:password #or [#env "WHEEL_APP_MQ_PASSWORD" "test123"]}}
14-
:settings {:oms {:ranging-queue-name "DEV.QUEUE.1"}
14+
:settings {:oms {:ranging-queue-name "DEV.QUEUE.1"
15+
:order-allocating-queue-name "DEV.QUEUE.2"}
1516
:channels {"UA" {:channel-name :tata-cliq
1617
:base-url "http://localhost:3000"
1718
:bearer-token "top-secret!"}

clojure/wheel/src/wheel/infra/cron/job/core.clj

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,10 @@
2727

2828
(defn handle [channel-fn ctx]
2929
(let [{:strs [channel-config cron-job-config]} (qc/from-job-data ctx)]
30-
(channel-fn (:channel-id cron-job-config) channel-config)))
30+
(try
31+
(channel-fn (:channel-id cron-job-config) channel-config)
32+
(catch Throwable ex
33+
(prn "==>" ex)))))
3134

3235
(defn schedule [scheduler {:keys [channel-id]
3336
:as cron-job-config}]

clojure/wheel/src/wheel/infra/oms.clj

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,4 +40,15 @@
4040
:start (let [queue-name (:ranging-queue-name (config/oms-settings))
4141
listener (message-listener :ranging :oms/items-ranged)]
4242
(start-consumer queue-name jms-ranging-session listener))
43-
:stop (stop ranging-consumer))
43+
:stop (stop ranging-consumer))
44+
45+
(mount/defstate order-allocating-session
46+
:start (.createSession ibmmq/jms-conn false Session/AUTO_ACKNOWLEDGE)
47+
:stop (stop order-allocating-session))
48+
49+
(mount/defstate order-allocating-producer
50+
:start (let [queue-name (:order-allocating-queue-name (config/oms-settings))
51+
ibmmq-queue-name (str "queue:///" queue-name)
52+
destination (.createQueue order-allocating-session ibmmq-queue-name)]
53+
(.createProducer order-allocating-session destination))
54+
:stop (stop order-allocating-producer))
Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,15 @@
11
(ns wheel.oms.client
22
(:require [wheel.oms.order :as oms-order]
3+
[wheel.infra.oms :as oms-infra]
34
[clojure.spec.alpha :as s]))
45

6+
(defn- send [session producer xml-message]
7+
(let [msg (.createTextMessage session)]
8+
(.setText msg xml-message)
9+
(.send producer msg)))
10+
511
(defn allocate-order [order]
612
{:pre [(s/assert ::oms-order/order order)]}
7-
(prn (oms-order/to-xml order)))
13+
(send oms-infra/order-allocating-session
14+
oms-infra/order-allocating-producer
15+
(oms-order/to-xml order)))

0 commit comments

Comments
 (0)