Как начать очередь сообщений?
Из документации по иммуностанту по http://immutant.org/documentation/current/apidoc/guide-installation.html:
Установив зависимости, вы просто вызываете службы Immutant из главной точки входа вашего приложения, определяемой
:main
введите вашproject.clj
,
Веб-сервис Immutant может быть вызван как:
(ns my-app.handler
...
(:require [immutant.web :as web])
... )
(def app ... )
(defn -main [& args]
(web/run app))
Что эквивалентно (web/run app)
за immutant.messaging
?
1 ответ
Вот ваш ответ для начала очереди
(ns my-project.name
(:require [immutant.messaging :as msg]))
(defn call-fn
[args]
(let [fun (ns-resolve "namespace where fun defined" (symbol (first args)))
params (rest args)]
(if (seq params)
(apply fun )
(fun))))
(msg/start "queue")
(msg/respond "queue" (fn [args] (call-fn args)))
позвонить в очередь просто сказать
@(msg/request "queue" ["fun-name" params])