zoukankan      html  css  js  c++  java
  • 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    清空所有定时任务

        

              

  • 相关阅读:
    after change the pltask.cfg
    C++ map的基本操作和用法
    const char * char * const 以及char const *
    遇到segmentation fault 错误
    编译和链接通过生成可执行文件,但运行时找不到动态库
    Invalid Issuer
    数据库的相关操作
    Go项目实战:打造高并发日志采集系统(六)
    Go项目实战:打造高并发日志采集系统(五)
    Go项目实战:打造高并发日志采集系统(四)
  • 原文地址:https://www.cnblogs.com/huangchunbao/p/11250966.html
Copyright © 2011-2022 走看看