package com.test.ghf.qzJob
import java.text.SimpleDateFormat
import java.util.{Date, Properties}
import org.quartz._
import org.quartz.impl.triggers.CronTriggerImpl
import org.quartz.impl.{JobDetailImpl, StdScheduler, StdSchedulerFactory}
/**
*
*/
object QZJob {
def initialize(): Properties = {
val properties = new Properties()
// properties.setProperty("org.quartz.scheduler.instanceName", Constants.MASTER.getString("org.quartz.scheduler.instanceName"))
// properties.setProperty("org.quartz.scheduler.rmi.export", Constants.MASTER.getString("org.quartz.scheduler.rmi.export"))
// properties.setProperty("org.quartz.scheduler.rmi.proxy", Constants.MASTER.getString("org.quartz.scheduler.rmi.proxy"))
// properties.setProperty("org.quartz.scheduler.wrapJobExecutionInUserTransaction", Constants.MASTER.getString("org.quartz.scheduler.wrapJobExecutionInUserTransaction"))
// properties.setProperty("org.quartz.scheduler.batchTriggerAcquisitionMaxCount", Constants.MASTER.getString("org.quartz.scheduler.batchTriggerAcquisitionMaxCount"))
// properties.setProperty("org.quartz.threadPool.class", Constants.MASTER.getString("org.quartz.threadPool.class"))
// properties.setProperty("org.quartz.threadPool.threadCount", Constants.MASTER.getString("org.quartz.threadPool.threadCount"))
// properties.setProperty("org.quartz.threadPool.threadPriority", Constants.MASTER.getString("org.quartz.threadPool.threadPriority"))
// properties.setProperty("org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread", Constants.MASTER.getString("org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread"))
// properties.setProperty("org.quartz.jobStore.misfireThreshold", Constants.MASTER.getString("org.quartz.jobStore.misfireThreshold"))
// properties.setProperty("org.quartz.jobStore.class", Constants.MASTER.getString("org.quartz.jobStore.class"))
properties
}
//创建调度器
def getSchedular():StdScheduler = {
StdSchedulerFactory.getDefaultScheduler.asInstanceOf[StdScheduler]
//new StdSchedulerFactory(initialize()).getScheduler.asInstanceOf[StdScheduler]
}
def buildSingleJob(): Unit ={
// 获取一个调度器
val scheduler: StdScheduler = getSchedular()
// 设定被调度类
val jobDetail = new JobDetailImpl()
jobDetail.setName("job1")
jobDetail.setGroup("group1")
jobDetail.setJobClass(classOf[MyJob])
//val jobDataMap = new JobDataMap()
//jobDataMap.put("taskInfo", "taskInfo")
val cronTrigger = new CronTriggerImpl()
cronTrigger.setName("cron1")
cronTrigger.setGroup("cron_group1")
cronTrigger.setCronExpression("0/10 * * * * ? ")
scheduler.scheduleJob(jobDetail, cronTrigger)
if (!scheduler.isStarted)
scheduler.start()
}
def main(args: Array[String]): Unit = {
buildSingleJob
}
}
/**
* 创建要被定时执行的类
*/
class MyJob extends Job {
override def execute(jobExecutionContext: JobExecutionContext): Unit = {
val sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss")
println(s"--------${sdf.format(new Date())}")
}
}