spring静态定时任务配置

spring定时任务配置

1:导包,maven

<!--定时开始-->
<dependency>  
    <groupId>org.quartz-scheduler</groupId>  
    <artifactId>quartz</artifactId>  
    <version>1.8.5</version>  
</dependency>  
<!--定时结束-->

2:引入定时任务配置文件

在web.xml中引入


    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:配置文件路径</param-value>
    </context-param>

或spring配置文件中引入

<import resource="classpath:配置文件路径" />

3:编写定时任务

可以随便写

public class Time{
    public void test() {
        System.out.println(new Date());
    }
}

4:编写定时任务配置文件

<?xml version="1.0" encoding="UTF-8"?>  
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">  
<beans>

    <!-- 定时任务的Bean  注意:定时器如果放在了service下! service中有@sevice注解 这意味着:
    1. @Service在声明bean的时候如果不指定名称的话,会默认以类名的一个字母小写命名。
    2. 当spring初始化bean时,会监测要初始化的bean是否已经存在相同名称的bean。
    如果此时再使用spring自动注入 则注入两次 便会报错 所以直接使用@Service生成的bean即可。
    -->  
    <bean id="monitorService" class="要执行定时任务的类路劲" />  

    <!-- 定义生成工作对象的工厂,并为工厂设定目标对象targetObject属性、目标对象的工作方法targetMethod属性 -->  
    <bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">  
        <property name="targetObject" ref="monitorService" />  
        <property name="targetMethod">  
            <value>test</value>  
        </property>  
        <property name="concurrent" value="false" />  
    </bean>  




    <!-- 进行定时设置。 -->  
    <bean id="cronQuartzClock" class="org.springframework.scheduling.quartz.CronTriggerBean">  
        <property name="jobDetail" ref="jobDetail" />  
        <!-- cron表达式 -->  
        <property name="cronExpression">  
            <!--   0 0 */2 * * ? 每两小时、整点触发 -->  
            <!--   每天23点执行一次:0 0 23 * * ? -->  
            <!--   0/5 * * * * ? 每五秒钟  -->  
            <!--   0 00 10 * * ? 每天Y分X点触发  -->  
          <!--   <value>0 16 15 * * ?</value>   -->
            <value>0 30 23 * * ?</value>  <!--23点30分执行  -->
        </property>  
    </bean>  



    <!-- 启动定时任务-->  
    <bean autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  
        <property name="triggers">  
            <list>  
              <!-- 可以添加多个定时  -->
                <ref bean="cronQuartzClock" />  
            </list>  
        </property>  
    </bean>

</beans>  

使用注解方式

    <!-- 定时任务配置 scheduler 方式 注解 暂时不支持动态更新 -->
    <context:component-scan base-package="定时任务所在包" />
    <task:executor id="executor" pool-size="5" />
    <task:scheduler id="scheduler" pool-size="10" />
    <task:annotation-driven executor="executor" scheduler="scheduler" />

使用时


 public class Time{
     @Scheduled(cron="0/1 * * * * ?")//每秒钟执行一次
    public void test() {
        System.out.println(new Date());
    }
}

动态配置定时任务
查看的是jeecg开源框架的动态定时任务
思路是读取配置文件,动态修改配置文件的节点,从而达到动态配置的效果

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tcoding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值