build.gradle
依賴:
//定時(shí)器
compile 'org.grails.plugins:quartz:2.0.0.M4'
創(chuàng)建一個(gè)job怨咪,執(zhí)行命令:
create-job com.test.Test
修改TestJob:
package com.test
class TestJob {
static triggers = {}
def execute(context) {
// execute job
println "執(zhí)行..."
// 獲取傳遞過來的參數(shù)
def msg = context.mergedJobDataMap.get("tip")
println msg
}
}
控制器中動(dòng)態(tài)調(diào)用:
def personPush() {
println "xxxxx"
// 傳參到j(luò)ob中
TestJob.schedule(new Date(),[tip: "執(zhí)行了定時(shí)器猬膨。纪蜒。兼砖。"])
}
暫停定時(shí)任務(wù)
def jobManagerService
def index() {
// 停止所有定時(shí)任務(wù)
jobManagerService.pauseAll()
render "Stop all Job."
}
恢復(fù)定時(shí)任務(wù)
jobManagerService.resumeAll()
JobManagerService
服務(wù)中常用方法
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) // 創(chuàng)建cron觸發(fā)器
MyJob.schedule(Long repeatInterval, Integer repeatCount, Map params) // 創(chuàng)建簡單的觸發(fā)器:以repeatInterval毫秒的延遲重復(fù)作業(yè)repeatCount + 1次
MyJob.schedule(Date scheduleDate, Map params) // 將一個(gè)作業(yè)執(zhí)行安排到特定日期
MyJob.schedule(Trigger trigger) // 使用自定義觸發(fā)器來安排作業(yè)的執(zhí)行
MyJob.triggerNow(Map params) // 強(qiáng)制立即執(zhí)行工作