无法保持胭脂红MQ工人打开



我正在尝试在持续运行的过程中实现一个胭脂红工人。

使用 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))

我的目标是这样的

  • 启动 foo 侦听器
  • Foo 侦听器在前台运行并打印发布到队列的所有内容
  • Ctrl-c/退出将关闭侦听器

lein foo运行它是错误的方法。我编辑了整个问题以符合我找到的"解决方案"。

主要问题是,我使用lein run myclass.foo来运行它。 lein trampoline run myclass.foo启动应用程序的JVM并摆脱了leiningen的JVM,似乎正是我所需要的。使用 trampoline 而不是 run 时,应用程序不会立即退出。

第 2 步,在 ctrl-c 上关闭连接是一个简单的关机挂钩

(.addShutdownHook (Runtime/getRuntime) (Thread. #(car-mq/stop my-worker)))

相关内容

  • 没有找到相关文章

最新更新