Как я могу получить Clojure WebApp для автоматического перераспределения?

StackOverflow https://stackoverflow.com/questions/3837547

  •  27-09-2019
  •  | 
  •  

Вопрос

Я разрабатываю webaplication в Clojure и Vaadin, но я не могу получить приложение к Autodoodploy, чтобы я просто нажимаю об обновлении на браузере. Есть идеи?

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

Решение

В идеале вы используете rep-сервер, который позволит вам загрузить новый код Clojure в ваше приложение по желанию. В этом случае это просто вопрос изменения вашего рабочего процесса в:

  1. Уведомление о проблемах
  2. Перейти к редактору Clojure
  3. Загрузите новый код в запущенное приложение
  4. Перейти к браузеру, нажмите Обновить.

Если вы используете Maven, вы можете использовать плагин Maven-Jetty-Plugin для автоматического перезагрузки WebApp при изменении исходных файлов. Видеть эта почта для получения дополнительной информации.

Еще один варианты - постоянно пытаться перезагрузить код вашего Clojure. Что-то вроде этого, возможно:

(defn reload
  ([] (reload #"."))
  ([ns-pattern]
    (doseq [ns (all-ns)
            :let [ns (.name ns)]
            :when (re-seq ns-pattern (str ns))]
      (require ns :reload))))

В каком-либо коде, который вы имеете, это запускает ваш WebApp, или в вашем главном сервлете и т. Д., Добавить что-то вроде:

(future (loop []
          (Thread/sleep 5000)
          (reload) ;; optionally specify a regex to match only your app's namespaces here
          (recur)))

Определенно не то, что вы хотите использовать в производстве. Я бы предпочел использовать правильную дистанционную замену в каждом случае, но приведенное выше вы получите вас.

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