首先,要创建你自己想要定时的实体类

@Service("smsService")
@Transactional
public class SmsSendUtil {

@Autowired
private SmsDao smsDao;

@Autowired
private ShortLinkService shortLinkService;

private Logger logger = Logger.getLogger(this.getClass());

下面的这个方法要是无参的
public synchronized void taskSendSms() {
Map<String, Object> columnMap = new HashMap<String,Object>();
columnMap.put("status", "0");
List<Sms> smsList = smsDao.selectByMap(columnMap);
for (Sms sms : smsList) {
logger.info("开始发送短信:手机号:"+sms.getPhone()+",短信内容:"+sms.getSendtext());
String result = "";
try {
result = shortLinkService.sengMessage(sms.getPhone(), sms.getSendtext());
} catch (Exception e) {
logger.error("短信发送失败!");
logger.info("失败短信:手机号:"+sms.getPhone()+",短信内容:"+sms.getSendtext());
e.printStackTrace();
}
Sms upSms = new Sms();
upSms.setId(sms.getId());
sms.setSendcount(sms.getSendcount()+1);
sms.setSendtime(new Date());
if ("success".equals(result)) {
sms.setStatus("1");
smsDao.update(sms, upSms);
}else {
sms.setStatus("0");
smsDao.update(sms, upSms);
}
}
}
}

第二步就是在配置文件中配置定时任务

<?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:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">

<!-- 定时任务获取增量数据-->
<bean id="sendFailedReturnDataRecord1" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail">
<bean id="sendFailedReturnDataRecord2" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<bean id="sendFailedReturnDataRecord3" class="ins.platform.common.util.SmsSendUtil"><!-- 类位置 -->
</bean>
</property>
<property name="targetMethod">
<value>taskSendSms</value> <!-- 方法名 -->
</property>
</bean>
</property>
<property name="cronExpression" value="0 30 * * * ? *"></property> <!-- 执行频率,每小时的第一秒触发 -->
</bean>

<!-- 设置调度 -->
<bean id="SpringJobSchedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="sendFailedReturnDataRecord1"/>
</list>
</property>
</bean>
</beans>

最后一步就是要在spring配置文件中将上述配置引入,就会开启定时了

转载于:https://www.cnblogs.com/guanjunhui/p/8383784.html

java定时任务详解相关推荐

  1. Java 定时任务详解

    文章目录 单机定时任务技术选型 Timer ScheduledExecutorService Spring Task 时间轮 分布式定时任务技术选型 Quartz Elastic-Job XXL-JO ...

  2. kettle工具下载、安装、数据迁移、定时任务详解

    kettle工具下载.安装.数据迁移.定时任务详解 篇幅有点长,将这五个内容放在了一篇文章里,其中最主要的是数据迁移和定时任务 目录 目录 一.简单介绍 二.下载 三.安装 四.数据迁移:包括单表整体 ...

  3. Spring整合Schedule定时任务详解

    Spring整合Schedule定时任务详解 Spring 定时任务官方网站 一.概述 用Spring,就是为了简单. 但是我还是要总结下java定时任务实现的几种方式. 1.TimerTask,等于 ...

  4. Apache Thrift - java开发详解

    2019独角兽企业重金招聘Python工程师标准>>> Apache Thrift - java开发详解 博客分类: java 架构 中间件 1.添加依赖 jar <depen ...

  5. Java泛型详解-史上讲解最详细的,没有之一

    目录 1. 概述 2. 一个栗子 3. 特性 4. 泛型的使用 4.1 泛型类 4.2 泛型接口 4.3 泛型通配符 4.4 泛型方法 4.4.1 泛型方法的基本用法 4.4.2 类中的泛型方法 4. ...

  6. Java虚拟机详解----JVM常见问题总结

    [正文] 声明:本文只是做一个总结,有关jvm的详细知识可以参考本人之前的系列文章,尤其是那篇:Java虚拟机详解04----GC算法和种类.那篇文章和本文是面试时的重点. 面试必问关键词:JVM垃圾 ...

  7. java 泛型详解、Java中的泛型方法、 java泛型详解

    本文参考java 泛型详解.Java中的泛型方法. java泛型详解 概述 泛型在java中有很重要的地位,在面向对象编程及各种设计模式中有非常广泛的应用. 什么是泛型?为什么要使用泛型? 泛型,即& ...

  8. 最详细的java泛型详解

    来源:最详细的java泛型详解 对java的泛型特性的了解仅限于表面的浅浅一层,直到在学习设计模式时发现有不了解的用法,才想起详细的记录一下. 本文参考java 泛型详解.Java中的泛型方法. ja ...

  9. Java异常详解及如何处理

    来源:Java异常详解及如何处理 简介 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常.异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?或者用C语言 ...

最新文章

  1. Lua(Codea) 中 table.insert 越界错误原因分析
  2. jquery遍历函数siblings()
  3. Node.js 安装报错提示“The error code is 2503“问题解决方法
  4. 记录vmware的bug failed to install hcmon deriver
  5. 中国电信:全业务IP网络的安全运营
  6. surfaceview结束后怎么处理_污泥压滤机处理后的污泥怎么处置
  7. 2.4 表单数据的验证
  8. fscanf返回值被忽略怎么解决_pytest的fixture怎么用?
  9. 通过反射认识泛型的本质
  10. 项目管理之成熟度模型
  11. matlab信道编码程序,信道编码作业matlab.doc
  12. android字体右对齐,Android TextView将文本右对齐和左对齐
  13. “己欲立而立人,己欲达而达人。”
  14. 求矩形槽内电位分布matlab,MATLAB超松弛迭代法求解接地金属槽内电位分布
  15. 【零基础系列】了解学习 uni-app
  16. 春招旺季提前,北上深杭平均招聘月薪过万
  17. excel 妙用选择性粘贴
  18. java中parser_愿你走出半生,归来仍是Java Parser
  19. 博通服务器网卡型号区别,博通BROADCOM 网卡型号汇总
  20. 关于W25QXX系列以及AT24CXX系列容量大小

热门文章

  1. CSS之七个高度有效的媒体查询技巧
  2. android开机logo制作工具,Android 开机Logo制作
  3. mysql8.0.11 安装顺序_mysql 8.0.11 安装步骤详解
  4. 自组网中继台_同频自组网基站
  5. android studio -genymotion神奇错误
  6. Redis的Java客户端Jedis的八种调用方式(事务、管道、分布式)介绍
  7. php常用代码(一)
  8. Centos7安装MySQL(多图)
  9. 并发编程之多线程线程安全(下)
  10. 百度OCR文字识别-Android安全校验