(ns metabase.session.task.session-cleanup (:require [clojurewerkz.quartzite.jobs :as jobs] [clojurewerkz.quartzite.schedule.cron :as cron] [clojurewerkz.quartzite.triggers :as triggers] [metabase.session.models.session :as session] [metabase.task :as task])) | |
(set! *warn-on-reflection* true) | |
(def ^:private session-cleanup-job-key (jobs/key "metabase.task.session-cleanup.job")) (def ^:private session-cleanup-trigger-key (triggers/key "metabase.task.session-cleanup.trigger")) | |
Job that cleans up outdated sessions. | (jobs/defjob SessionCleanup [_] (session/cleanup-sessions!)) |
(defmethod task/init! ::SessionCleanup [_]
(let [job (jobs/build
(jobs/of-type SessionCleanup)
(jobs/with-identity session-cleanup-job-key))
trigger (triggers/build
(triggers/with-identity session-cleanup-trigger-key)
(triggers/start-now)
(triggers/with-schedule
;; run once a day
(cron/cron-schedule "0 0 2 * * ? *")))]
(task/schedule-task! job trigger))) | |