MessageMgr.java

package com.uyao.bid.common.message;

import com.pominfo.framework.exception.PomInfoException;

public interface MessageMgr {
/**
* 发送短消息
* @param message
* @return
* @throws PomInfoException
*/
public String sendMessage(Message message ) throws PomInfoException;
}

MessageMgrImpl.java

package com.uyao.bid.common.message;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder; import com.uyao.bid.common.constant.SysCodeConstant; public class MessageMgrImpl implements MessageMgr {
/**
* 发送短消息
*/
public String sendMessage(Message message) {
String result="";
try {
StringBuffer sb = new StringBuffer(SysCodeConstant.SEND_MESSAGE_URL);
sb.append("username=").append(message.getUserName());
sb.append("&password=").append(message.getPassWord());
sb.append("&receiver=").append(message.getReceiver());
sb.append("&content="+URLEncoder.encode(message.getContent())); URL url = new URL(sb.toString());
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod(message.getRequestMethod());
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
String inputline = in.readLine();
result =inputline;
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
}

MessageAction.java

package com.uyao.bid.common.message;

import java.util.ArrayList;
import java.util.Date;
import java.util.List; import com.pominfo.framework.struts.PomInfoAction;
import com.uyao.bid.common.constant.SysCodeConstant;
import com.uyao.bid.common.util.StringUtil;
import com.uyao.bid.jk.biz.RemindDetailDrugMgr;
import com.uyao.bid.jk.biz.RemindDetailMgr;
import com.uyao.bid.jk.model.RemindDetail;
import com.uyao.bid.jk.model.RemindDetailDrug; public class MessageAction extends PomInfoAction {
private RemindDetailMgr remindDetailMgr;
private RemindDetailDrugMgr remindDetailDrugMgr;
public RemindDetailDrugMgr getRemindDetailDrugMgr() {
return remindDetailDrugMgr;
}
public void setRemindDetailDrugMgr(RemindDetailDrugMgr remindDetailDrugMgr) {
this.remindDetailDrugMgr = remindDetailDrugMgr;
}
public RemindDetailMgr getRemindDetailMgr() {
return remindDetailMgr;
}
public void setRemindDetailMgr(RemindDetailMgr remindDetailMgr) {
this.remindDetailMgr = remindDetailMgr;
} /**
* 用药提醒自动短信发送
* @return
*/
public void sendRemindMessage(){
try {
MessageMgr messageMgr = new MessageMgrImpl();
List<RemindDetail> remindDetails =new ArrayList<RemindDetail>();
remindDetails = remindDetailMgr.getRemindDetailMessage(null);
for(RemindDetail rd:remindDetails){
if(rd.getRemind().getPhoneNum()!=null && !rd.getRemind().getPhoneNum().isEmpty()){
String content =SysCodeConstant.MessageModel.REMIND_CONTENT_TEMPLATES;//消息内容模板
List<RemindDetailDrug> remindDetailDrugs =new ArrayList<RemindDetailDrug>();
RemindDetailDrug remindDetailDrug =new RemindDetailDrug();
remindDetailDrug.setRemindDetail(rd);
remindDetailDrugs = remindDetailDrugMgr.getRemindDetailDrugList(remindDetailDrug);
StringBuffer sb =new StringBuffer("");
for(RemindDetailDrug rdd:remindDetailDrugs){
sb.append(rdd.getDrug().getDrugName()).append("、");
}
content = content.replace("@drugs",sb.substring(0, sb.length() - 1));
Message message =new Message();
message.setUserName(SysCodeConstant.MessageModel.USERNAME);
message.setPassWord(SysCodeConstant.MessageModel.PASSWORD);
message.setReceiver(rd.getRemind().getPhoneNum());
message.setContent(content);
message.setRequestMethod("POST");
messageMgr.sendMessage(message);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

spring-task.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <bean id="messageJob" class="com.uyao.bid.common.message.MessageAction">
<property name="remindDetailMgr">
<ref bean="remindDetailMgr" />
</property>
<property name="remindDetailDrugMgr">
<ref bean="remindDetailDrugMgr"/>
</property>
</bean> <!-- 定时器执行 -->
<bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="autoSendSmlogTriggers" />
</list>
</property>
</bean>
<!-- 定时器时间与方法的设定 -->
<bean id="autoSendSmlogTriggers" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="sendRemindMessage" /> <!-- 每分钟时发送一次 -->
</property>
<property name="cronExpression">
<!-- 秒 分 小时 ? 日期 月份 -->
<value>0 0/1 * * * ?</value>
</property>
</bean> <!-- 设定执行代码中的具休方法 -->
<bean id="sendRemindMessage" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean="messageJob" />
</property>
<property name="targetMethod">
<value>sendRemindMessage</value>
</property>
</bean>
</beans>

Spring+Quartz实现定时任务的更多相关文章

  1. Spring+Quartz 实现定时任务的配置方法

    Spring+Quartz 实现定时任务的配置方法 整体介绍 一.Quartz介绍 在企业应用中,我们经常会碰到时间任务调度的需求,比如每天凌晨生成前天报表,每小时生成一次汇总数据等等.Quartz是 ...

  2. Spring+quartz 实现定时任务job集群配置

    为什么要有集群定时任务? 因为如果多server都触发相同任务,又同时执行,那在99%的场景都是不适合的.比如银行每晚24:00都要汇总营业额.像下面3台server同时进行汇总,最终计算结果可能是真 ...

  3. Spring+quartz 实现定时任务job集群配置【原】

    为什么要有集群定时任务? 因为如果多server都触发相同任务,又同时执行,那在99%的场景都是不适合的.比如银行每晚24:00都要汇总营业额.像下面3台server同时进行汇总,最终计算结果可能是真 ...

  4. Spring+Quartz实现定时任务的配置方法

    1.Scheduler的配置 <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean" ...

  5. quartz (二) Spring+Quartz实现定时任务的配置方法

    JobDetail  设置执行的任务 :CronTrigger   触发器:设置执行的时间规则      ;  Scheduler    // 调度器,将任务与执行时间关联 本文转自:http://w ...

  6. Spring+Quartz配置定时任务

    一.Quartz介绍 在企业应用中,我们经常会碰到时间任务调度的需求,比如每天凌晨生成前天报表,每小时生成一次汇总数据等等.Quartz是出了名的任务调度框架,它可以与J2SE和J2EE应用程序相结合 ...

  7. 轻松搞定Spring+quartz的定时任务

    1.spring 的定时任务写法有两种:一种是继承工作类,一种是普通的Bean,定时写法有两种写法:一种是以时间间隔启动任务SimpleTriggerBean,一种是以时刻启动任务CronTrigge ...

  8. Spring+Quartz实现定时任务的配置方法(插曲)

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46376093 1.Scheduler的配置 <bean class=&quo ...

  9. Spring+Quartz实现定时任务的配置方法(转)

    1.Scheduler的配置 <bean id="myScheduler" class="org.springframework.scheduling.quartz ...

随机推荐

  1. PKCS#1规范阅读笔记2--------公私钥ASN.1结构

    PKCS#1种介绍了哈希算法的OID等的ASN.1结构,因为使用ASN.1的解码工具(比如:ASN1View)时,会自动显示出各OID的含义,所以这里就不说明了.下面就只简单摘抄一下RSA公私钥的AS ...

  2. Oracle a Parameter with multi value

     备注:此两种方案,都因为oracle内部字符函数的参数长度4000限制.另外,个人测试,性能不如”将数据插入物理表再JOIN查询“或”每1000次ID做一次IN查询“的总的运行速度. 即ID的个数越 ...

  3. ThinkPHP实现对数据库的增删改查

    好久都没有更新博客了,之前老师布置的任务总算是现在可以说告一段落了,今天趁老师还没提出其他要求来更新一篇博客. 今天我想记录的是我之前做项目,自己所理解的ThinkPHP对数据库的增删改查. 首先要说 ...

  4. iOS Swift-控制流(The Swift Programming Language)

    iOS Swift-控制流(The Swift Programming Language) for-in 在Swift中for循环我们可以省略传统oc笨拙的条件和循环变量的括号,但是语句体的大括号使我 ...

  5. 浅谈UIAlertController使用

    一开始在刚接触到Alert和ActionSheet的时候,经常傻傻分不清楚,好不容易用习惯了,苹果又给合并了,好在用起来也不困难,到底哪个好呢?见仁见智吧! 现在稍微介绍一下怎么用. 1.初始化,一般 ...

  6. 在 CentOS7 上安装 Tomcat9

    在 CentOS7 上安装 Tomcat9 1 通过 SecureCRT 连接到阿里云 CentOS7 服务器: 2 进入到目录 /usr/local/ 中: cd /usr/local/ 3 创建目 ...

  7. 基于Ruby的watir-webdriver自动化测试方案与实施(三)

    接着基于Ruby的watir-webdriver自动化测试方案与实施(二) http://www.cnblogs.com/Javame/p/4159468.html 继续 ... ...   编写脚本 ...

  8. 活用UML-软件设计高手(广州 2014年6月14-15日)

    我们将在广州为您奉献高级技术课程”活用UML-软件设计高手“,首席专家张老师将会为您分享软件架构设计.数据库设计.用户体验设计及详细设计的最佳实践,帮助您成为优秀的软件设计师! 时间:2014.06. ...

  9. 【转】JavaScript中的原型和继承

    请在此暂时忘记之前学到的面向对象的一切知识.这里只需要考虑赛车的情况.是的,就是赛车. 最近我正在观看 24 Hours of Le Mans ,这是法国流行的一项赛事.最快的车被称为 Le Mans ...

  10. 交互式makefile

    之前一直不知道在shell中调用read赋值后,怎么传给makefile中的变量,后来才恍然大悟. myname := $(shell read -p "Enter your name:&q ...