Вопрос

Я пишу веб-приложение, используя кольцо и Clojure. Я использую адаптер причала для сервера разработки и Emacs / Slime для IDE. В то время как перезагрузка помогает, Run-Jetty блокирует мою сессию слизирования, и я хотел бы иметь возможность начать / остановить его без необходимости запустить его в отдельном сеансе терминала. В идеале я хотел бы определить серверный агент и функции Start-Server и Stop-Server, который начнет / остановить сервер внутри агента. Это возможно?

Это было полезно?

Решение

У меня обычно есть строка в моем кольцевом приложении, которое выглядит следующее:

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

Это предотвращает блокировку refl. Это также позволяет мне перекомпилировать этот файл, не беспокоясь о том, что мой сервер будет переопределен. Это также позволяет вам взаимодействовать в RECH так:

user=> (.stop server)

а также

user=> (.start server)

Другие советы

Документация пристанирования имеет некоторую информацию о изящное отключение присяга. Это, вероятно, недостаточно информации, но она может начать.

Я еще не начал играть с компиюром, но в целом я предпочитаю работать с Tomcat. Это более полнофункционально; Среди прочего, есть хорошо документированная API для запуска его и выключения его, он слушает команду отключения на выделенном порту; Существуют ant Задачи для этого, и они, конечно, могут быть вызваны из приложения Java. Я просто не знаю, какая волшебная компиюра делает с подключением reft в запущенном экземпляре веб-контейнера, а если / как применяется автоматический класс Reloading ... Надеюсь, кто-то другой сможет предоставить больше информации.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top