Spring 定时器

方法一:注解形式

配置文件头加上如下:

xmlns:task="http://www.springframework.org/schema/task"http://www.springframework.org/schema/task
http://www.springframework.org/schema/task/spring-task.xsd

需要 quartz 包
<dependency><groupId>org.quartz-scheduler</groupId><artifactId>quartz</artifactId><version>2.2.2</version>
</dependency>

 <!-- 扫描包 -->
<context:component-scan base-package="com.hehe.content.job" /><!-- 启动定时任务  --> <task:annotation-driven/> 

@Component
public class MyTask {@Scheduled(cron="0 0 2 * * ?") // 每天凌晨2点执行,该方法不能有返回值public void taskCycle(){  System.out.println("======================");  }
}

方法二:xml配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"xmlns:task="http://www.springframework.org/schema/task"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-4.1.xsdhttp://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd"><!-- 启动定时任务  --><!-- <task:annotation-driven/> <context:component-scan base-package="com.hehe.content.job" />  --><!-- 要调用的工作类 -->  <bean id="quartzJob" class="com.hehe.content.job.MyTask"></bean>  <!-- 定义调用对象和调用对象的方法 -->  <bean id="jobtask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">  <!-- 调用的类 -->  <property name="targetObject">  <ref bean="quartzJob" />  </property>  <!-- 调用类中的方法 -->  <property name="targetMethod">  <value>taskCycle</value>  </property>  </bean>  <!-- 定义触发时间 -->  <bean id="doTime"  class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">  <property name="jobDetail">  <ref bean="jobtask" />  </property>  <!-- cron表达式 -->  <property name="cronExpression">  <value>0 0 2 * * ?</value>     </property>  </bean>  <!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 -->  <bean id="startQuertz" lazy-init="false" autowire="no"  class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  <property name="triggers">  <list>  <ref bean="doTime" />  </list>  </property>  </bean>  </beans>

问题: 每次任务到点都执行两次!!!!!!

网上查了好多资料 ,都不是我的情况,后来发现是我的项目在启动的时候每次都会加载两次,原来是eclipse 中tomcat配置的问题

图中若选择的是第二个,项目会启动两次,这就导致了后面的定时器执行了两次。最后改为了第一选项就好了。

转载于:https://www.cnblogs.com/c9999/p/6171062.html

spring定时器,定时器一次执行两次的问题相关推荐

  1. 为什么有时候spring mvc的interceptor会执行两次

    spring mvc的拦截器大家应该都不陌生,可以在进入响应controller之前以及之后进行一些处理. 但有些情况下,拦截器中的preHandle方法总会执行两次,这是为何? 在解答此问题之前,我 ...

  2. linux定时器多次,Spring 定时器执行两次

    Spring错误笔记 Spring定时器执行两次因为导入了两次 关于配置文件如下 对应的类有个定时执行检查的动作,但是动作中的日志每次输出两遍,一开始以为是log4j的输出导致的两条,找了半天没办法还 ...

  3. python每天定时9点执行_python定时器每天订时执行的实例方法

    python定时器,实现每天凌晨3点执行的方法 如下所示: ''' Created on 2018-4-20 例子:每天凌晨3点执行func方法 ''' import datetime import ...

  4. spring定时任务执行两次的原因与解决方法

    spring定时任务执行两次的原因与解决方法 参考文章: (1)spring定时任务执行两次的原因与解决方法 (2)https://www.cnblogs.com/yolanda-lee/p/7339 ...

  5. 解决spring定时任务执行两次和tomcat部署缓慢的问题

    解决spring定时任务执行两次和tomcat部署缓慢的问题 参考文章: (1)解决spring定时任务执行两次和tomcat部署缓慢的问题 (2)https://www.cnblogs.com/Si ...

  6. spring定时任务执行两次的直接解决方案

    这个问题,很多人是通过修改tomcat的配置文件来解决的.这里之所以要提出一种直接解决方案,是应为并不是每个开发人员都有权限修改线上环境的tomcat配置,这个直接解决方案就是给无权修改tomcat配 ...

  7. Spring Aop 常见注解和执行顺序

    欢迎关注方志朋的博客,回复"666"获面试宝典 来源:juejin.cn/post/7062506923194581029 Spring 一开始最强大的就是 IOC / AOP 两 ...

  8. Spring mvc 启动配置文件加载两遍问题

    问题描述 在使用spring mvc 启动的时候,用到了一个在程序启动时加载的配置方法init-method="initLoad",并启动多线程来做数据同步,但是在程序启动之后发现 ...

  9. 当Spring 容器初始化完成后执行某个方法

    当Spring 容器初始化完成后执行某个方法 实现ApplicationListener 使用注解:`@PostConstruct` 实现ApplicationListener 在做web项目开发中, ...

最新文章

  1. PHP-密码学算法及其应用-对称密码算法
  2. 软件开发人员能力模型
  3. git fetch和git pull
  4. 计算图像相似度——《Python也可以》之一
  5. 【小议】centos与ubuntu的区别
  6. Linux能否靠架构取得胜利
  7. delphi7aes加密解密与java互转_Java 加密/解密Excel
  8. 保驾护航金三银四,含BATJM大厂
  9. sqlite 0转换为bit_Cisco Talos在SQLite中发现了一个远程代码执行漏洞
  10. Django module学习之模板
  11. go rpc安装方法
  12. 计算机技术中,下列的英文缩写和中文名字的对照中,正确的是,计算机技术中,下列的英文缩写和中文名字的对照中。正确的是(  )。 a.cad——计算机辅助制造b.cam——计...
  13. 【转】大厦将倾,互联网将如何变革传统行业(下)
  14. Andrew Ng 如何重拾梦想
  15. RecyclerView异步加载图片
  16. PDF如何加水印? PDF加水印的方法
  17. 《数据安全法》施行在即,政企单位如何构建数据安全治理体系?
  18. 温度传感器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  19. PHP抓取百度搜索结果页面的【相关搜索词】并存储
  20. 在Ubuntu 22.04 Jammy Jellyfish Linux上流畅安装VMware tools

热门文章

  1. 钉钉产品介绍_钉钉正式推出智能OA:免费开放、一站解决“人财物事”管理难题...
  2. put请求方式参数如何传_TP5请求(request)变量
  3. 死锁产生的原因及条件和手写死锁
  4. Hessian之简单使用
  5. 碎片脚本注解(后续整理)
  6. [Swift]八大排序算法(八):基数排序
  7. SQL-Server使用点滴(一-数据对象篇)
  8. Java Servlet(一):创建工程(jdk7+tomcat7+eclipse)
  9. php ajax mysql 分页查询_PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
  10. 能测试快充真假的软件,苹果iOS 12可自行测试真假快充:山寨充电器将被洗牌