programing

Clojure에서 부두 서버를 어떻게 중지합니까?

projobs 2021. 1. 19. 20:54
반응형

Clojure에서 부두 서버를 어떻게 중지합니까?


ring과 clojure를 사용하여 웹 애플리케이션을 작성 중입니다. 개발 서버에는 jetty 어댑터를 사용하고 IDE에는 emacs / SLIME를 사용하고 있습니다. wrap-reload가 도움이되지만 run-jetty는 내 슬라임 세션을 차단하므로 별도의 터미널 세션에서 실행할 필요없이 원하는대로 시작 / 중지 할 수 있기를 바랍니다. 이상적으로는 에이전트 내에서 서버를 시작 / 중지하는 서버 에이전트 및 기능 start-server 및 stop-server를 정의하고 싶습니다. 이것이 가능한가?


일반적으로 링 앱에 다음과 같은 줄이 있습니다.

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

이것은 REPL을 잠그는 것을 방지합니다. 또한 서버가 재정의 될 염려없이이 파일을 다시 컴파일 할 수 있습니다. 또한 REPL에서 다음과 같이 상호 작용할 수 있습니다.

user=> (.stop server)

user=> (.start server)

Jetty 문서에는 Jetty의 정상 종료대한 정보가 있습니다. 정보가 충분하지 않을 수 있지만 시작하는 데 도움이 될 수 있습니다.

아직 compojure로 연주를 시작하지 않았지만 전반적으로 Tomcat과 함께 작업하는 것을 선호합니다. 더 많은 기능을 갖추고 있습니다. 무엇보다도 시작 및 종료를위한 잘 문서화 된 API가 있으며 전용 포트에서 종료 명령을 수신합니다. 이를 ant수행하는 작업이 있으며 물론 Java 앱에서도 호출 할 수 있습니다. REPL을 웹 컨테이너의 실행중인 인스턴스에 연결하여 Compojure가 어떤 종류의 마법을 수행하는지 모르겠습니다. 자동 클래스 재로드가 발생하는지 여부와 방법은 ... 다른 사람이 더 많은 정보를 제공 할 수 있기를 바랍니다.

참조 URL : https://stackoverflow.com/questions/2706044/how-do-i-stop-jetty-server-in-clojure

반응형