Pregunta

Estoy escribiendo una aplicación web utilizando el anillo y clojure. Estoy utilizando el adaptador de embarcadero para el servidor de desarrollo y emacs / BABA para IDE. Mientras recapitulación de recarga sirve de ayuda, bloques iniciales embarcadero mi sesión de limo y me gustaría ser capaz de iniciar / detener a voluntad sin tener que ejecutarlo en una sesión de terminal separada. Idealmente, me gustaría definir un agente de servidor y las funciones de arranque y parada del servidor-servidor que iniciar / detener el servidor dentro del agente. ¿Es esto posible?

¿Fue útil?

Solución

Por lo general tienen una línea en mi aplicación anillo que tiene el siguiente aspecto:

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

Esto evita que bloqueen el REPL. También me permite volver a compilar este archivo sin preocuparse de que mi servidor conseguirá redefinido. También le permite interactuar en el REPL este modo:

user=> (.stop server)

y

user=> (.start server)

Otros consejos

La documentación embarcadero tiene alguna información sobre apagado ordenado del embarcadero. Eso es probablemente no es suficiente información, pero puede empezar.

No he empezado a jugar con compojure todavía, pero en general prefiero trabajar con Tomcat. Es más con todas las funciones; entre otras cosas, hay una API bien documentado para su puesta en marcha y apagarlo, se escucha el comando de apagado en un puerto dedicado; hay tareas ant de hacer esto, y podrían, por supuesto, pueden llamar desde una aplicación Java, así. Sólo que no sé qué clase de magia Compojure no con la conexión de la réplica de una instancia de ejecución del contenedor Web, y si / cómo ocurre la recarga de clases automática ... espero que alguien más va a ser capaz de proporcionar más información.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top