Je veux démarrer un serveur avec un démarrage clojure qui doit continuer à fonctionner. J'ai donc fait une fonction -main
pour pouvoir exécuter ./build.boot
et exécuter la fonction principale. Dans la fonction principale, je démarre un thread non démon avec l'idée que la JVM continue à fonctionner tant qu'il y a un thread non démon. Cependant, le script de démarrage s'arrête et mon serveur s'arrête également. Qu'est-ce que je fais mal?Pourquoi mon script de démarrage clojure s'arrête-t-il
#!/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???")))
Sortie
#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???
Après qui se termine le script.
Si la réponse résout votre problème, vous devez accepter il. – nha