网站如何做触屏滑动效果,商品推广与营销的方式,活码二维码生成器,wordpress reeoo 主题java实现任务调度#xff0c;主要分为几个步骤#xff1a; 1.创建一个服务 2.创建一个任务类#xff0c;将服务作为一个任务去完成#xff08;实现job接口#xff09; 3.创建一个任务类实体 4.创建一个触发器#xff0c;指定触发规则… java实现任务调度主要分为几个步骤 1.创建一个服务 2.创建一个任务类将服务作为一个任务去完成实现job接口 3.创建一个任务类实体 4.创建一个触发器指定触发规则 5.创建一个调度绑定任务和触发器
接下来我们先看看IRemindService接口的代码 /**
* Title: IRemindService.java
* Package org.service
* Description: TODO该方法的主要作用
* author A18ccms A18ccms_gmail_com
* date 2017-5-26 下午7:54:13
* version V1.0
*/
package org.service;/** * * 项目名称spring_Schop07 * 类名称IRemindService * 类描述 * 创建人Mu Xiongxiong * 创建时间2017-5-26 下午7:54:13 * 修改人Mu Xiongxiong * 修改时间2017-5-26 下午7:54:13 * 修改备注 * version * */
public interface IRemindService {void sendMsg();void sendMsg(String userName);}它的实现类也很简单简单看看就行重点不在这里这里只是拟定一个任务主要的调度在后面/**
* Title: RemindServiceImpl.java
* Package org.service.impl
* Description: TODO该方法的主要作用
* author A18ccms A18ccms_gmail_com
* date 2017-5-26 下午7:55:19
* version V1.0
*/
package org.service.impl;import org.service.IRemindService;/** * * 项目名称spring_Schop07 * 类名称RemindServiceImpl * 类描述 * 创建人Mu Xiongxiong * 创建时间2017-5-26 下午7:55:19 * 修改人Mu Xiongxiong * 修改时间2017-5-26 下午7:55:19 * 修改备注 * version * */
public class RemindServiceImpl implements IRemindService {/**(非 Javadoc)* pTitle: sendMsg/p* pDescription(描述): /p* see org.service.IRemindService#sendMsg()*/Overridepublic void sendMsg() {System.out.println(像张三发送一条信息);}Overridepublic void sendMsg(String userName) {System.out.println(像userName发送一条信息);}}要想实现任务调度那么久得实现Job接口具体代码如下 /**
* Title: RemindJob.java
* Package org.service.impl
* Description: TODO该方法的主要作用
* author A18ccms A18ccms_gmail_com
* date 2017-5-26 下午7:58:09
* version V1.0
*/
package org.service.impl;import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.service.IRemindService;/** * * 项目名称spring_Schop07 * 类名称RemindJob * 类描述 * 创建人Mu Xiongxiong * 创建时间2017-5-26 下午7:58:09 * 修改人Mu Xiongxiong * 修改时间2017-5-26 下午7:58:09 * 修改备注 * version * */
public class RemindJob implements Job {/**(非 Javadoc)* pTitle: execute/p* pDescription(描述): 任务调度/p* param arg0* throws JobExecutionException* see org.quartz.Job#execute(org.quartz.JobExecutionContext)*/Overridepublic void execute(JobExecutionContext context) throws JobExecutionException {IRemindService remindService new RemindServiceImpl();System.out.println(任务:context.getJobDetail().getName());remindService.sendMsg(context.getJobDetail().getJobDataMap().getString(user));}}接下来看看spring里面是如何配置的?xml version1.0 encodingUTF-8?
beansxmlnshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexmlns:phttp://www.springframework.org/schema/pxsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd!-- 1.创建任务实体类 2.创建触发器3.创建调度注入数据--!-- bean iddetailJob classorg.springframework.scheduling.quartz.JobDetailBeanproperty namejobClass valueorg.service.impl.RemindJob/property property namejobDataMapmapentry keyuser value王五/entry/map/property/bean --bean idremindService classorg.service.impl.RemindServiceImpl/bean!-- 讲普通的javaBean定义为任务而省略了任务类 --bean iddetailJob classorg.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBeanproperty nametargetObject refremindService/propertyproperty nametargetMethod valuesendMsg/propertyproperty nameargumentslistvalue赵六/value/list/property/bean!-- 简单触发器 --bean idtrigger classorg.springframework.scheduling.quartz.SimpleTriggerBeanproperty namerepeatCount value-1/propertyproperty namerepeatInterval value3000/propertyproperty namestartDelay value1000/propertyproperty namejobDetail refdetailJob/property/bean !-- 复杂触发器 --!-- bean idtrigger classorg.springframework.scheduling.quartz.CronTriggerBeanproperty namejobDetail refdetailJob/propertyproperty namecronExpression value0 39 22 26 * ?/property/bean --bean idsche classorg.springframework.scheduling.quartz.SchedulerFactoryBeanproperty nametriggerslistref beantrigger//list/property/bean
/beans代码都编写完毕我们来测试一下package org.service.impl;import java.text.ParseException;
import java.util.Date;import org.junit.Test;
import org.quartz.CronTrigger;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.SimpleTrigger;
import org.quartz.impl.StdSchedulerFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/***
*
* 项目名称spring_Schop07
* 类名称RemindServiceImplTest
* 类描述 测试类
* 创建人Mu Xiongxiong
* 创建时间2017-5-26 下午8:04:00
* 修改人Mu Xiongxiong
* 修改时间2017-5-26 下午8:04:00
* 修改备注
* version
**/
public class RemindServiceImplTest {Testpublic void testMethod() throws SchedulerException, InterruptedException, ParseException {//创建任务实体JobDetail jobDetail new JobDetail(job1,group1,RemindJob.class);//给任务传递数据jobDetail.getJobDataMap().put(user,李四);//创建简单触发器SimpleTrigger trigger new SimpleTrigger(trigger1,SimpleTrigger.REPEAT_INDEFINITELY,3000);//复杂触发器//每个月的26号 21:20:00//CronTrigger trigger new CronTrigger(tigger3,group2,0 30 21 26 * ?);//开始时间(当前毫秒数1秒延迟一秒)trigger.setStartTime(new Date(System.currentTimeMillis()1000));//创建调度器SchedulerFactory sfc new StdSchedulerFactory();Scheduler sche sfc.getScheduler();//注册任务和触发器sche.scheduleJob(jobDetail, trigger);//启动任务工程sche.start();//延迟10000msThread.sleep(100000);//关闭sche.shutdown();}/*** throws InterruptedException * * Title: testSpring* Description: 该方法的主要作用通过spring实现quartz* param 设定文件 * return 返回类型void * throws*/Testpublic void testSpring() throws InterruptedException{ApplicationContext ctx new ClassPathXmlApplicationContext(applicationContext.xml);Thread.sleep(10000);}}