(ns metabase.db.custom-migrations.util (:require [clojurewerkz.quartzite.scheduler :as qs] [metabase.db.connection :as mdb.connection] [metabase.plugins.classloader :as classloader] [metabase.task.bootstrap])) | |
(defn- set-jdbc-backend-properties! [] (metabase.task.bootstrap/set-jdbc-backend-properties! (mdb.connection/db-type))) | |
Internal implementation of with-temp-schedule! | (defn do-with-temp-schedule
[f]
(classloader/the-classloader)
(set-jdbc-backend-properties!)
(let [scheduler (qs/initialize)]
(qs/start scheduler)
(f scheduler)
(qs/shutdown scheduler))) |
Execute the body with a temporary Quartz scheduler. (with-temp-schedule! [scheduler] (do-something scheduler)) | (defmacro with-temp-schedule! [[scheduler-binding] & body] `(do-with-temp-schedule (fn [~scheduler-binding] ~@body))) |