一、spring项目中quartz的使用
1.配置文件
<!-- 注册自定义作业类 --> <bean id="myJob" class="com.boci.quartzJobs.UpdateEncryptCertJob"> </bean> <!-- 配置JobDetail --> <bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <!-- 注入目标对象 --> <property name="targetObject" ref="myJob"/> <!-- 注入目标方法 --> <property name="targetMethod" value="updateEncryptCert"/> </bean> <!-- 配置触发器 --> <bean id="myTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean"> <!-- 注入任务详情对象 --> <property name="jobDetail" ref="jobDetail"/> <!-- 注入cron表达式,通过这个表达式指定触发的时间点 --> <!-- http://cron.qqe2.com/也可以去这个网址在线生成自己需要的时间表达式 --> <property name="cronExpression"> <value>0 0 3 * * ? </value> </property> </bean> <!-- 配置调度工厂 --> <bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <!-- 注入触发器 --> <property name="triggers"> <list> <ref bean="myTrigger"/> </list> </property> </bean>
2.创建定时任务需要执行的类
注意:类名和方法名要和配置文件中配置的一致
例子如下:
package com.boci.quartzJobs; public class UpdateEncryptCertJob { public void updateEncryptCert() { LogUtil.writeLog("----------------执行定时任务开始------------------"); //定义自己的实现逻辑 LogUtil.writeLog("----------------执行定时任务结束------------------"); } }
二、也可使用Linux下的crontab实现定时任务
1.定义需要定时执行的业务逻辑例子如下:
package test; public class Test{ public static void main(String[] args) throws Exception{ MyThread1 mThread = new MyThread1(); mThread.start(); Thread thread = new Thread(new MyThread2()); thread.start(); } } //继承Thread class MyThread1 extends Thread{ @Override public void run() { System.out.println("myThread1"); } } //实现Runnable class MyThread2 implements Runnable{ @Override public void run() { System.out.println("mythread2"); } }
2.将创建的类转成jar文件
步骤:在项目中选择Test.java右键点击export,选择Runnable JAR file 点击next
3. 将jar文件上传至Linux,创建执行的脚本文件Test.sh,内容如下:
/usr/java/jdk1.8.0_211-amd64/bin/java -jar /home/sunshine/Test.jar>/home/sunshine/Test`date +%Y%m%d`.log
注意:java是你自己安装java的位置
4.在Linux下输入 crontab -e 添加定时任务内容如下:
5.查看自己保存日志的文件,定时任务设置成功
相关Linux命令
crontab -e 编辑定时任务
crontab -l 查看所设置的定时任务列表
crontab -r 清空所有定时任务