Я хочу запустить сервер с загрузкой clojure, который должен продолжать работать. Поэтому я создал функцию -main
, чтобы я мог запустить ./build.boot
и выполнить основную функцию. В основной функции я запускаю поток без демона с идеей, что JVM продолжает работать, пока существует поток без демона. Однако сценарий загрузки останавливается, и мой сервер также останавливается. Что я делаю не так?Почему мой скрипт загрузки clojure перестает работать
#!/usr/bin/env boot
(defn -main [& args]
(let [t (Thread. #(loop []
(println (java.util.Date.))
(Thread/sleep 500)
(recur)))]
(.setDaemon t false)
(.start t)
(Thread/sleep 3000)
(println "I have started a non-daemon thread, but still I exit???")))
Выход
#inst "2016-06-23T08:39:23.453-00:00"
#inst "2016-06-23T08:39:24.005-00:00"
#inst "2016-06-23T08:39:24.507-00:00"
#inst "2016-06-23T08:39:25.009-00:00"
#inst "2016-06-23T08:39:25.511-00:00"
#inst "2016-06-23T08:39:26.013-00:00"
I have started a non-daemon thread, but still I exit???
После чего заканчивается сценарий.
Если ответ решить вашу проблему, вы должны принять Это. – nha