From 1441ec9ebfbc65c4a683384491794acb7d553479 Mon Sep 17 00:00:00 2001 From: George Jahad Date: Tue, 11 May 2010 15:47:26 -0700 Subject: [PATCH] moved send-message-on-queue into future --- src/org/runa/swarmiji/mpi/sevak_proxy.clj | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/org/runa/swarmiji/mpi/sevak_proxy.clj b/src/org/runa/swarmiji/mpi/sevak_proxy.clj index 584d4a8..82c52cb 100644 --- a/src/org/runa/swarmiji/mpi/sevak_proxy.clj +++ b/src/org/runa/swarmiji/mpi/sevak_proxy.clj @@ -17,22 +17,24 @@ (defn sevak-queue-message-for-return [sevak-service args] (assoc (sevak-queue-message-no-return sevak-service args) :return-queue-name (return-queue-name))) -(defn register-callback [return-q-name custom-handler] +(defn register-callback [return-q-name custom-handler request-object] (let [chan (new-channel) consumer (consumer-for chan DEFAULT-EXCHANGE-NAME DEFAULT-EXCHANGE-TYPE return-q-name return-q-name) on-response (fn [msg] (custom-handler (read-string msg)) (.queueDelete chan return-q-name) (.close chan))] - (future (on-response (delivery-from chan consumer))) + (future + (do + (send-message-on-queue (queue-sevak-q-name) request-object) + (on-response (delivery-from chan consumer)))) {:channel chan :queue return-q-name})) (defn new-proxy ([sevak-service args callback-function] (let [request-object (sevak-queue-message-for-return sevak-service args) return-q-name (request-object :return-queue-name) - proxy-object (register-callback return-q-name callback-function)] - (send-message-on-queue (queue-sevak-q-name) request-object) + proxy-object (register-callback return-q-name callback-function request-object)] proxy-object)) ([sevak-service args] (let [request-object (sevak-queue-message-no-return sevak-service args)]