Files
integreat/src/clj/auto_ap/jobs/core.clj

28 lines
1.0 KiB
Clojure

(ns auto-ap.jobs.core
(:require [auto-ap.utils :refer [heartbeat]]
[mount.core :as mount]
[auto-ap.datomic :refer [conn ]]
[clojure.tools.logging :as log]
[nrepl.server :refer [start-server]]
[auto-ap.background.metrics :refer [metrics-setup container-tags container-data logging-context]]
[unilog.context :as lc]
[com.brunobonacci.mulog :as mu]))
(defn execute [name f]
(try
(lc/with-context {:background-job name}
(mu/with-context {:background-job name
:service name}
(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))
(log/info "Stopping " name)
(Thread/sleep 15000)
(mount/stop)))
(catch Exception e
(log/error "ERROR" e)
(println e)
(throw e))
(finally
(System/exit 0))))