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支持的新功能---- ...
随机推荐
- java基础拓展
1. 作用域:public private protected 默认的区别 public:在同一项目中,被public修饰的在任何地方都可以被调用 private:被private修饰的,只能在本类中 ...
- CF D. Labyrinth 01BFS
由于上下走不限制,所以按照贪心,我们应该尽可能走上下方向. 我们可以开一个双端队列,并认为每次提取队首的时候得到的是到达该点的最优策略.(这个一定是唯一的,因为不可能向右走几格,然后再退回去. ) 那 ...
- 软件安装——internal error2503/2502
安装新的软件后先报internal error 2503,随后报internal error 2502.就是不让我装新的软件,提示说发生严重错误,然后安装失败. Solution for intern ...
- 进阶4:hive 安装
安装包: apache-hive-2.1.1-bin.tar.gz 安装步骤: 1.上传 apache-hive-2.1.1-bin.tar.gz 到linux; 2.解压文件: tar zxvf ...
- Oracle-存储过程实现更改用户密码
--调用存储过程实现更改DB用户密码 CREATE OR REPLACE PROCEDURE MODUSERPW(USER_NAME VARCHAR2,USER_PW VARCHAR2)ISSQLTX ...
- kali的网络IP设置
进入配置文件,配置IP leafpad /etc/network/interfaces.conf 写入如下格式的内容: /etc/network/interfaces # This file desc ...
- 在命令行运行java代码
因为尝试将运行结果通过管道命令保存,所以尝试在命令行(不借助lde来运行java代码,结果折腾了半天) 仿照的是eclipse创建文件目录的方式 最终解决方法是: #/bin/bash root_di ...
- leetcode-mid-array-73 set matrix zeros
mycode 空间复杂度 m+n 思路:用set把为0元素所在行.列记录下来 注意:注释的方法更快 class Solution(object): def setZeroes(self, matrix ...
- leetcode 52 N皇后问题 II
51的简化版,省去根据排列话棋盘的工作,直接计数,代码: class Solution { public: int totalNQueens(int n) { ; vector<); dfs(n ...
- 搭建spring项目,无法创建RequestMappingHandlerMapping异常
异常详情: Error creating bean with name 'org.springframework.web.servlet.mvc.method.annotation.RequestMa ...