53 votes

Comment puis-je arrêter le serveur Jetty dans clojure?

J'écris une application web en utilisant ring et clojure. J'utilise l'adaptateur jetty pour le serveur de développement et emacs / SLIME pour l'IDE. Bien que wrap-reload aide, run-jetty bloque ma session de slime et j'aimerais pouvoir le démarrer / l’arrêter à volonté sans avoir à le lancer dans une session de terminal séparée. Idéalement, j'aimerais définir un agent de serveur et des fonctions start-server et stop-server permettant de démarrer / arrêter le serveur à l'intérieur de l'agent. Est-ce possible?

107voto

dnolen Points 12833

J'ai généralement une ligne dans mon application Ring qui ressemble à ceci:

 (defonce server (run-jetty #'my-app {:port 8080 :join? false}))
 

Cela évite de bloquer le REPL. Cela me permet également de recompiler ce fichier sans craindre que mon serveur ne soit redéfini. Cela vous permet également d’interagir sur le REPL comme ceci:

 user=> (.stop server)
 

et

 user=> (.start server)
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X