我试图在一个不断运行的过程中实施胭脂红工人。
使用lein run myclass.foo
启动以下应用时,它只会启动工作人员并立即停止。
(def my-worker
(car-mq/worker queue-server "my-queue"
{:handler (fn [{:keys [message attempt]}]
(println "Received" message)
{:status :success})
:auto-start false}))
(defn -main []
(car-mq/start my-worker))
我的目标是那样的
答案 0 :(得分:0)
使用lein foo
运行它是错误的方法。我编辑了整个问题以符合我找到的“解决方案”。
主要问题是,我使用lein run myclass.foo
来运行它。 lein trampoline run myclass.foo
启动应用程序的JVM并摆脱leiningen,似乎正是我需要的。使用trampoline
代替run
时,应用程序不会立即退出。
步骤2,关闭ctrl-c上的连接是一个简单的关闭挂钩
(.addShutdownHook (Runtime/getRuntime) (Thread. #(car-mq/stop my-worker)))