(ns metabase.task.task-history-cleanup (:require [clojurewerkz.quartzite.jobs :as jobs] [clojurewerkz.quartzite.schedule.cron :as cron] [clojurewerkz.quartzite.triggers :as triggers] [metabase.models.task-history :as task-history] [metabase.task :as task] [metabase.util.log :as log])) | |
(set! *warn-on-reflection* true) | |
Maximum number of TaskHistory rows. | (def ^:private history-rows-to-keep 100000) |
Delete older TaskHistory rows -- see docstring of | (defn- task-history-cleanup!
[]
(log/debug "Cleaning up task history")
(task-history/with-task-history {:task "task-history-cleanup"}
(let [deleted-rows? (task-history/cleanup-task-history! history-rows-to-keep)]
(log/debug
(if deleted-rows?
"Task history cleanup successful, rows were deleted"
"Task history cleanup successful, no rows were deleted"))))) |
Delete older TaskHistory rows -- see docstring of | (jobs/defjob TaskHistoryCleanup [_] (task-history-cleanup!)) |
(def ^:private job-key "metabase.task.task-history-cleanup.job") (def ^:private trigger-key "metabase.task.task-history-cleanup.trigger") | |
(defmethod task/init! ::TaskHistoryCleanup [_]
(let [job (jobs/build
(jobs/of-type TaskHistoryCleanup)
(jobs/with-identity (jobs/key job-key)))
trigger (triggers/build
(triggers/with-identity (triggers/key trigger-key))
(triggers/start-now)
(triggers/with-schedule
;; run every day at midnight
(cron/cron-schedule "0 0 0 * * ? *")))]
(task/schedule-task! job trigger))) | |