build.gradle
依赖:
//定时器compile 'org.grails.plugins:quartz:2.0.0.M4'
创建一个job,执行命令:
create-job com.test.Test
修改TestJob:
package com.testclass TestJob {static triggers = {}def execute(context) {// execute jobprintln "执行..."// 获取传递过来的参数def msg = context.mergedJobDataMap.get("tip")println msg}}
控制器中动态调用:
def personPush() {println "xxxxx"// 传参到job中TestJob.schedule(new Date(),[tip: "执行了定时器。。。"])}
暂停定时任务
def jobManagerServicedef index() {// 停止所有定时任务jobManagerService.pauseAll()render "Stop all Job."}
恢复定时任务
jobManagerService.resumeAll()
JobManagerService
服务中常用方法
Map <String , List<JobDescriptor>> getAllJobs() {}List<JobDescriptor> getJobs(String group) {}def getRunningJobs() {}def pauseJob(String group, String name) {}def resumeJob(String group, String name) {}def pauseTrigger(String group, String name) {}def resumeTrigger(String group, String name) {}def pauseTriggerGroup(String group) {}def resumeTriggerGroup(String group) {}def pauseJobGroup(String group) {}def resumeJobGroup(String group) {}def pauseAll() {}def resumeAll() {}def removeJob(String group, String name) {}def unscheduleJob(String group, String name) {}def interruptJob(String group, String name) {}
可自行查看grails.plugins.quartz.JobManagerService
类
方法:
MyJob.schedule(String cronExpression, Map params) // 创建cron触发器MyJob.schedule(Long repeatInterval, Integer repeatCount, Map params) // 创建简单的触发器:以repeatInterval毫秒的延迟重复作业repeatCount + 1次MyJob.schedule(Date scheduleDate, Map params) // 将一个作业执行安排到特定日期MyJob.schedule(Trigger trigger) // 使用自定义触发器来安排作业的执行MyJob.triggerNow(Map params) // 强制立即执行工作