(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))) |