2016-10-28 13 views
0

たとえば、'[pandeiro.boot-http :refer [serve]]を使用する簡単なboot-cljタスクがあるとします。変更を加えてタスクを再起動する必要がある場合、ポートがすでに使用中であると不満を持ちます。 replを再起動しなくてもjettyサーバーを殺す方法はありますか?これはコンポーネントフレームワークのようなものから始めて、長期的なプロジェクトであるはるかにエレガントな方法でこの問題を解決し、多くの依存を可能にしている場合再起動せずにjettyサーバを停止するには

(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 

またはあなたのブートスクリプトで:

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

通常の静的ファイルのserveいつもディスクから現在のバージョンを返します。それらを再ロードする必要はありません。

実際にタスクを再開する必要がある場合は、issueの影響を受けてpandeiro.boot-httpになり、そのメンテナに連絡する必要があります。

関連する問題