Ich möchte einen Server mit Clojure-Boot starten, der weiterlaufen muss. Also habe ich eine -main
Funktion gemacht, damit ich ./build.boot
ausführen kann und die Hauptfunktion ausführen wird. In der Hauptfunktion starte ich einen Nicht-Daemon-Thread mit der Idee, dass die JVM solange läuft, wie es einen Nicht-Daemon-Thread gibt. Das Boot-Skript stoppt jedoch und mein Server stoppt ebenfalls. Was mache ich falsch?Warum läuft mein clojure-Boot-Skript nicht?
#!/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???")))
Ausgabe
#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???
Nach dem das Skript endet.
Wenn die Antwort Ihr Problem gelöst, sollten Sie akzeptieren es. – nha