Skip to content

Instantly share code, notes, and snippets.

@saltnlight5
Created October 6, 2012 15:19
Show Gist options
  • Save saltnlight5/3845197 to your computer and use it in GitHub Desktop.
Save saltnlight5/3845197 to your computer and use it in GitHub Desktop.
Quartz Demos
@Grab('org.quartz-scheduler:quartz:2.1.6')
@Grab('org.slf4j:slf4j-simple:1.7.1')
import org.quartz.*
import org.quartz.impl.*
import org.quartz.jobs.*
import static org.quartz.DateBuilder.*
import static org.quartz.JobBuilder.*
import static org.quartz.TriggerBuilder.*
import static org.quartz.CalendarIntervalScheduleBuilder.*
import static java.util.Calendar.*
def trigger = newTrigger()
.withSchedule(
calendarIntervalSchedule()
.withInterval(2, IntervalUnit.WEEK))
.startAt(futureDate(10, IntervalUnit.MINUTE))
.build()
dates = TriggerUtils.computeFireTimes(trigger, null, 20)
dates.each{ println it }
@Grab('org.quartz-scheduler:quartz:2.1.6')
@Grab('org.slf4j:slf4j-simple:1.7.1')
import org.quartz.*
import org.quartz.impl.*
import org.quartz.jobs.*
import static org.quartz.DateBuilder.*
import static org.quartz.JobBuilder.*
import static org.quartz.TriggerBuilder.*
import static org.quartz.CronScheduleBuilder.*
def trigger = newTrigger()
.withSchedule(cronSchedule("0 30 08 * * ?"))
.startNow()
.build()
dates = TriggerUtils.computeFireTimes(trigger, null, 20)
dates.each{ println it }
@Grab('org.quartz-scheduler:quartz:2.1.6')
@Grab('org.slf4j:slf4j-simple:1.7.1')
import org.quartz.*
import org.quartz.impl.*
import org.quartz.jobs.*
import static org.quartz.DateBuilder.*
import static org.quartz.JobBuilder.*
import static org.quartz.TriggerBuilder.*
import static org.quartz.DailyTimeIntervalScheduleBuilder.*
import static java.util.Calendar.*
/*
There is also these quick schedule from builder
onEveryDay()
onMondayThroughFriday()
onSaturdayAndSunday()
withIntervalInHours(7)
*/
def trigger = newTrigger()
.withSchedule(
dailyTimeIntervalSchedule()
.startingDailyAt(TimeOfDay.hourMinuteAndSecondOfDay(8, 30, 0))
.endingDailyAt(TimeOfDay.hourMinuteAndSecondOfDay(17, 0, 0))
.onDaysOfTheWeek(MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY)
.withInterval(7, IntervalUnit.HOUR))
.startNow()
.build()
dates = TriggerUtils.computeFireTimes(trigger, null, 20)
dates.each{ println it }
@Grab('org.quartz-scheduler:quartz:2.1.6')
@Grab('org.slf4j:slf4j-simple:1.7.1')
import org.quartz.*
import org.quartz.impl.*
import org.quartz.jobs.*
import static org.quartz.DateBuilder.*
import static org.quartz.JobBuilder.*
import static org.quartz.TriggerBuilder.*
import static org.quartz.CronScheduleBuilder.*
// Java sys props -Duser.timezone=EST would set default tz value.
def trigger = newTrigger()
.withSchedule(cronSchedule("0 0 * * * ?"))
.startNow()
.build()
dates = TriggerUtils.computeFireTimesBetween(
trigger,
null,
dateOf(0, 0, 0, 3, 11, 2012),
dateOf(0, 0, 0, 5, 11, 2012))
dates.each{ println it }
@Grab('org.quartz-scheduler:quartz:2.1.6')
@Grab('org.slf4j:slf4j-simple:1.7.1')
import org.quartz.*
import org.quartz.impl.*
import org.quartz.jobs.*
import static org.quartz.JobBuilder.*
import static org.quartz.TriggerBuilder.*
import static org.quartz.SimpleScheduleBuilder.*
// Define a job
class HelloJob implements Job {
def void execute(JobExecutionContext context) {
println("Hello job is running. Timestamp=${new Date()}")
}
}
// Start scheduler
def scheduler = StdSchedulerFactory.getDefaultScheduler()
scheduler.start()
println("Scheduler is ready: $scheduler")
// Schedule a no operation job.
def job = newJob(HelloJob.class)
.withIdentity("job1", "group1")
.build()
def trigger = newTrigger()
.withIdentity("trigger1", "group1")
.withSchedule(
simpleSchedule()
.withIntervalInSeconds(3)
.repeatForever())
.startNow()
.build()
scheduler.scheduleJob(job, trigger)
println("Added job1 that runs every 3 seconds.");
// Register shutdown
addShutdownHook { scheduler.shutdown() }
// Put server in wait mode
synchronized(this){ this.wait() }
@Grab('org.quartz-scheduler:quartz:2.1.6')
@Grab('org.slf4j:slf4j-simple:1.7.1')
import org.quartz.*
import org.quartz.impl.*
import org.quartz.jobs.*
import static org.quartz.DateBuilder.*
import static org.quartz.JobBuilder.*
import static org.quartz.TriggerBuilder.*
import static org.quartz.SimpleScheduleBuilder.*
def trigger = newTrigger()
.withSchedule(
simpleSchedule()
.withIntervalInSeconds(3)
.repeatForever())
.startNow()
.build()
dates = TriggerUtils.computeFireTimes(trigger, null, 20)
dates.each{ println it }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment