spring项目开发所用到的定时任务quartz及Linux下crontab定时任务详解

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

    

          

原文地址:https://www.cnblogs.com/huangchunbao/p/11250966.html