一、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 清空所有定时任务