¿Cómo detengo jetty server en clojure?
Estoy escribiendo una aplicación web usando ring y clojure. Estoy usando el adaptador jetty para el servidor de desarrollo y emacs / SLIME para IDE. Si bien wrap-reload ayuda, run-jetty bloquea mi sesión de slime y me gustaría poder iniciarla / detenerla a voluntad sin tener que ejecutarla en una sesión de terminal separada. Idealmente, me gustaría definir un agente de servidor y las funciones start-server y stop-server que iniciarían / detendrían el servidor dentro del agente. Es esto posible?
2 answers
Normalmente tengo una línea en mi aplicación Ring que se parece a la siguiente:
(defonce server (run-jetty #'my-app {:port 8080 :join? false}))
Esto evita bloquear el REPL. También me permite recompilar este archivo sin preocuparme de que mi servidor se redefinirá. También le permite interactuar en el REPL de la siguiente manera:
user=> (.stop server)
Y
user=> (.start server)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-04-24 21:31:00
La documentación de Jetty tiene cierta información sobre El apagado agraciado de Jetty. Eso probablemente no es suficiente información, pero puede ayudarte a empezar.
Todavía no he empezado a jugar con compojure, pero en general prefiero trabajar con Tomcat. Es más completo; entre otras cosas, hay una API bien documentada para iniciarlo y apagarlo, escucha el comando de apagado en un puerto dedicado; hay ant
tareas para hacer esto, y por supuesto podrían ser llamado desde una aplicación Java también. Simplemente no sé qué tipo de magia hace Compojure al conectar el REPL a una instancia en ejecución del contenedor Web, y si / cómo ocurre la recarga automática de clases... esperemos que alguien más sea capaz de proporcionar más información.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-04-24 20:57:52