java定时任务详解
首先,要创建你自己想要定时的实体类
@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配置文件中将上述配置引入,就会开启定时了
java定时任务详解的更多相关文章
- Java内部类详解
Java内部类详解 说起内部类这个词,想必很多人都不陌生,但是又会觉得不熟悉.原因是平时编写代码时可能用到的场景不多,用得最多的是在有事件监听的情况下,并且即使用到也很少去总结内部类的用法.今天我们就 ...
- 黑马----JAVA迭代器详解
JAVA迭代器详解 1.Interable.Iterator和ListIterator 1)迭代器生成接口Interable,用于生成一个具体迭代器 public interface Iterable ...
- C++调用JAVA方法详解
C++调用JAVA方法详解 博客分类: 本文主要参考http://tech.ccidnet.com/art/1081/20050413/237901_1.html 上的文章. C++ ...
- Java虚拟机详解----JVM常见问题总结
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- [转] Java内部类详解
作者:海子 出处:http://www.cnblogs.com/dolphin0520/ 本博客中未标明转载的文章归作者海子和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置 ...
- Java面向对象详解
Java面向对象详解 前言:接触项目开发也有很长一段时间了,最近开始萌发出想回过头来写写以前学 过的基础知识的想法.一是原来刚开始学习接触编程,一个人跌跌撞撞摸索着往前走,初学的时候很多东西理解的也懵 ...
- java 乱码详解_jsp中pageEncoding、charset=UTF -8"、request.setCharacterEncoding("UTF-8")
http://blog.csdn.net/qinysong/article/details/1179480 java 乱码详解__jsp中pageEncoding.charset=UTF -8&quo ...
- CentOS Linux使用crontab运行定时任务详解
参考博文: (总结)CentOS Linux使用crontab运行定时任务详解
- java 泛型详解(普通泛型、 通配符、 泛型接口)
java 泛型详解(普通泛型. 通配符. 泛型接口) JDK1.5 令我们期待很久,可是当他发布的时候却更换版本号为5.0.这说明Java已经有大幅度的变化.本文将讲解JDK5.0支持的新功能---- ...
随机推荐
- win10如何设置软件开机启动
想要实现应用程序在所有的用户登录系统后都能自动启动,就把该应用程序的快捷方式放到“系统启动文件夹”里C:\ProgramData\Microsoft\Windows\Start Menu\Progra ...
- 面试题常考&必考之--js中的call()和apply()
apply: 接受两个参数,第一个参数是要绑定给this的值,第二个参数是一个参数数组.当第一个参数为null.undefined的时候,默认指向window. call: 第一个参数是要绑定给thi ...
- Web防止button按钮点击多次
BtnPass.Attributes.Add("onclick", "javascript:if(document.getElementById('IsSubmited' ...
- 如何在ASP.NET Core中上传超大文件
HTML部分 <%@PageLanguage="C#"AutoEventWireup="true"CodeBehind="index.aspx. ...
- Java——常用类(Math)
[常用方法] 这些方法为静态方法.
- 10分钟学会React Context API
Create-react-app来学习这个功能: 注意下面代码红色的即可,非常简单. 在小项目里Context API完全可以替换掉react-redux. 修改app.js import React ...
- [算法]Min_25筛
前言 本篇文章中使用的字母\(p\),指\(\text{任意的} p \in \text{素数集合}\) 应用场景 若函数\(f(x)\)满足, \(f(x)\)是积性函数 \(f(p)\)可以使用多 ...
- 颜色空间模型 与 Opencv中的HSV模型范围
颜色空间总结 RGB.HSV.YUV 什么是颜色 Wiki是这样说的:颜色或色彩是通过眼.脑和我们的生活经验所产生的一种对光的视觉效应.嗯,简单点说,颜色就是人对光的一种感觉,由大脑产生的一种感觉.感 ...
- Spring Cloud架构教程 (六)消息驱动的微服务【Dalston版】
Spring Cloud Stream是一个用来为微服务应用构建消息驱动能力的框架.它可以基于Spring Boot来创建独立的.可用于生产的Spring应用程序.它通过使用Spring Integr ...
- Initialization of bean failed; nested exception is java.lang.
网上搜寻各种解说,applicationContext-hibernate.xml 配置错误,jar冲突等等 现场错误图: 解决方法: asm-attrs.jar cglib-nodep-2.1_3. ...