您的位置:首页 > 其它

quartz 实现定时作业 初级

2017-11-07 15:50 183 查看
已经实习将近5天了,今天终于完成了公司。交给我的第一个任务:在maven +springMVC 项目中实现定时把打包的zip文件上床到FTP服务器。

虽然时间上可能花的比较久,但是讲真一些bug调着调着时间就过了。(╯‵□′)╯︵┴─┴

好了闲话说到这下面进入正题:

1.maven quartz依赖

<!-- quartz依赖 -->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>2.2.1</version>
<!-- Quartz的最新版本为Quartz 2.3.0。 -->
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz-jobs</artifactId>
<version>2.2.1</version>
</dependency>


2.quartz在spring.xml中的配置

<!--  这是我设置需要定时调度的类  给其注册为bean -->
<bean id="testMethodQuartz" class="com.zm.mlog.jobs.MyJob"/>

<
4000
span class="hljs-comment"><!-- 配置methodInvokingJobDetailFactoryBean 调度任务的id和执行的方法 -->
<bean id="testTaskMethod"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean" >
<property name="targetObject" ref="testMethodQuartz"/><!--  -->
<property name="targetMethod" value="work"/><!-- 执行方法 -->
<property name="concurrent" value="false"/>
</bean>

<!-- 配置定时表达式 -->
<bean id="testTaskTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="testTaskMethod" />
<!-- 每30s执行一次 -->
<property name="cronExpression" value="*/30 * * * * ?"/>
<!-- 想知道时间设置可以去:http://www.cnblogs.com/skyblue/p/3296350.html -->
</bean>

<!-- 配置调度工厂 -->
<bean id="testSchedulerFactoryBean"
class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list><!-- 调度列表 -->
<ref bean="testTaskTrigger"/>
</list>
</property>
</bean>


3.自己设置的调度任务类MyJob

public class MyJob implements Job{//这里需要继承org.quartz.Job;

@Override
public void execute(JobExecutionContext arg0) throws JobExecutionException {//不需要重写execute()
// TODO Auto-generated method stub
}

public void work() {
//输出调度的时间
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
System.out.println(sdf.format(date));
}
}


4.JobTest类,用来测试

public class JobTest {
public static void main(String[] args){
System.out.println("TestQuartz start.");
ApplicationContext context = new ClassPathXmlApplicationContext("classpath:spring.xml");//这里我没有运行在服务器,而是直接加载配置文件
}
}


5.运行结果



下次会写将文件上传到FTP服务器:(http://blog.csdn.net/zmq52007/article/details/78488112
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: