Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;; file quartz.clj
- (ns d.quartz
- (:require [clojure.tools.logging :as log]
- [clj-time.core :refer [now]]
- [clj-time.format :refer [formatters unparse]])
- (:import
- [org.quartz CronScheduleBuilder DateBuilder JobDetail Scheduler Trigger JobBuilder TriggerBuilder Job]
- [org.quartz.impl StdSchedulerFactory]
- [org.quartz.impl.triggers CronTriggerImpl]
- [java.util TimeZone Locale]))
- (def job-class "d.gen.SomeJob")
- (gen-class
- :name "d.gen.SomeJob"
- :implements ["org.quartz.Job"]
- :prefix "job-"
- :main false)
- (defn job-execute [x y]
- (log/info "hello from job"))
- ;; file core.clj
- (ns d.core
- (:require [d.quartz :refer [job-class state job-execute]]
- [clojure.tools.logging :as log]
- [clojure.edn :as edn]
- [clojure.java.io :as io]
- [cheshire.core :as json]
- [clojure.string :refer [trim]])
- (:import
- [org.quartz CronScheduleBuilder DateBuilder JobDetail Scheduler Trigger JobBuilder TriggerBuilder Job JobKey]
- [org.quartz.impl StdSchedulerFactory]
- [org.quartz.impl.triggers CronTriggerImpl]
- [java.util TimeZone Locale Date]))
- (gen-class
- :name "d.main"
- :prefix "main-"
- :main true)
- (def job-group "group0")
- (defn -main [& args]
- (let [scheduler (StdSchedulerFactory/getDefaultScheduler)
- job-key (JobKey. "cron-job" job-group)
- job (-> (JobBuilder/newJob
- (Class/forName job-class))
- .storeDurably
- (.withIdentity job-key)
- .build)]
- (doto scheduler
- (.addJob job false)
- .start)
- (.scheduleJob scheduler
- (-> (TriggerBuilder/newTrigger)
- (.forJob job)
- (.withIdentity "cron-trigger" job-group)
- (.startAt (Date. (+ (System/currentTimeMillis) (* 1000 30))))
- (.withSchedule
- (CronScheduleBuilder/cronSchedule
- (:cron files)))
- .build))))
- ;; project.clj needs these lines:
- ;; :aot [d.quartz d.main]
- ;; [org.quartz-scheduler/quartz "2.2.0"]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement