假设我有一个RabbitMQ队列,我想编写clojure代码来处理队列上的消息
我将如何或以何种方式调用clojure代码来处理RabbitMQ队列上的任务 我需要写一个守护进程还是什么 我知道java代码最初启动需要很长时间,所以我希望有一种方法可以为我的clojure代码编写一个长时间运行的流程假设我有一个RabbitMQ队列,我想编写clojure代码来处理队列上的消息,clojure,Clojure,我将如何或以何种方式调用clojure代码来处理RabbitMQ队列上的任务 我需要写一个守护进程还是什么 我知道java代码最初启动需要很长时间,所以我希望有一种方法可以为我的clojure代码编写一个长时间运行的流程 我完全不知道clojure将在哪个容器中运行,例如,它是否是一个守护程序,如果是,如何编写clojure守护程序?您的问题有点笼统,所以让我来详细分析一下: 您有一个RabbitMQ队列,并且希望使用Clojure中的消息 您希望将此消息使用者作为独立程序运行 您想将此程序作为
我完全不知道clojure将在哪个容器中运行,例如,它是否是一个守护程序,如果是,如何编写clojure守护程序?您的问题有点笼统,所以让我来详细分析一下:
(defn -main [& args]
"your code")
有关这方面的更多信息,请参阅。如果您将其用作构建工具,则应在project.clj
文件中指定主要功能,然后构建uberjar,例如
对于不同的操作系统,将程序作为后台任务运行的过程是不同的。在后台运行某些内容的最简单方法是在命令后添加一个符号和:
$ java -jar my-uber-jar.jar &
但是当您关闭键入此命令的终端时,您的程序将终止。我写了一篇关于clojure和rabbitMQ的博客文章,希望对您有所帮助 它包括向队列中添加消息和从队列中获取消息 如果您不知道如何创建守护进程(这相当复杂,我从clojure那里从来没有做过),但需要一个长时间运行的进程,那么解决方法可能是一个屏幕会话。然后,您可以在终端上运行程序,但仍然要注销并保持其运行 碰巧,我还写过一篇关于屏幕的入门教程。你可以在这里找到它:
关于这是什么队列,你能说得更具体一点吗?答案中有没有回答你的问题?避免程序在关闭终端时终止的最简单解决方案是使用
nohup
()。上面Gert的命令是:nohupjava-jarmy-uber-jar.jar&
$ java -jar my-uber-jar.jar &