(ns auto-ap.jobs.core (:require [auto-ap.utils :refer [heartbeat]] [mount.core :as mount] [auto-ap.datomic :refer [conn]] [auto-ap.logging :as alog] [nrepl.server :refer [start-server]] [auto-ap.background.metrics :refer [metrics-setup container-tags container-data logging-context]] [com.brunobonacci.mulog :as mu])) (defn execute [name f] (mu/with-context {:background-job name :source name :service name} (mu/trace ::execute-background-job [] (try (mount/start (mount/only #{#'conn #'metrics-setup #'container-tags #'logging-context #'container-data})) (start-server :port 9000 :bind "0.0.0.0" #_#_:handler (cider-nrepl-handler)) ((heartbeat f name)) (alog/info ::stopping :job name) (Thread/sleep 15000) (mount/stop) (catch Exception e (alog/error ::job-error :error e) (throw e)) (finally (System/exit 0))))))