2016-10-28 16 views
0

'[pandeiro.boot-http :refer [serve]]을 사용하는 간단한 boot-clj 작업이 있다고 가정 해 봅시다. 작업을 변경하고 다시 시작해야 할 경우 포트가 이미 사용 중임을 알립니다. repl를 다시 시작하지 않고 부두 서버를 죽일 수있는 방법이 있습니까? 이 컴포넌트 프레임 워크 같은 것을 시작하는 장기 프로젝트이다 훨씬 더 우아한 방법으로이 문제를 해결하고 많은 의존을 허용하는 경우repl를 다시 시작하지 않고 부두 서버를 중지하는 방법

(defonce running-server (atom nil)) 
(defn stop-server [] (@running-server)) 
(defn go [] 
    (reset! running-server 
      (org.httpkit.server/run-server 
      ... your stuff here ...)) 

:

답변

0

당신은이 많은 사람들이이 패턴을 사용하려면 구성 요소 (따라서 이름). 이것은 good place to get started이며 다음 프로젝트를 시작하기 전에 읽을만한 가치가 있습니다.

0

pandeiro.boot-http은 처리기를 다시로드 할 수 있으므로 serve 작업을 다시 시작할 필요가 없습니다. 명령 행에서

: 당신은 :reload set to true로 구성해야

boot serve -H myapp.server/app -R wait 

또는 부트 스크립트에

: 일반 정적 파일 serve 항상 디스크에서 현재 버전을 반환에 대한

(boot (serve :handler 'myapp.server/app :reload true) (wait)) 

그래서 그들을 위해 다시로드 할 필요가 없습니다.

정말로 작업을 다시 시작해야 할 경우 issue의 영향을 받아 pandeiro.boot-http에 영향을 받고 관리자에게 문의해야 할 수도 있습니다.