查看: 5430|回复: 1
打印 上一主题 下一主题

Timer类定时任务异常程序停下来怎么解决?

[复制链接]
跳转到指定楼层
楼主
发表于 2014-6-20 10:19:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近系统中用到了定时发送短信功能,目前的做法是用系统自带的Timer类写一个定时任务,将要发送的短信存入一个数据库表中,定时发送。硬件采用的是市面上常见的wavecom短信猫

现有如下问题求解:系统不定时发生如下异常"GSM: Invalid CREG response.",随后的短信就发不出去了。
我个人感觉似乎有两个问题:1.好像Timer碰到了异常后就停了,如果是这样,我该怎么办
2.GSM: Invalid CREG response.",这个异常应该怎么避免

to ddzhang: 它有异常倒也无所谓,大不了我等会再发这条短信,问题是好像一有这个异常,整个程序就停下来了,不知您当时是怎么解决的

下面是我用到的发送类,Timer会定时从数据库取得需要发送的短信,然后通过一个循环来调用这个类

java代码:

  1. public void doIt(String number, String msgs) throws TimeoutException, GatewayException, SMSLibException, IOException, InterruptedException {

  2.                 Service srv;
  3.                 OutboundMessage msg;
  4.                 OutboundNotification outboundNotification = new OutboundNotification();

  5.                 srv = new Service();

  6.                 SerialModemGateway gateway = new SerialModemGateway("modem.com1",
  7.                                 "COM1", 9600, "wavecom", "17254");
  8.                 gateway.setInbound(true);
  9.                 gateway.setOutbound(true);
  10.                 gateway.setSimPin("0000");
  11.                 gateway.setOutboundNotification(outboundNotification);
  12.                 srv.addGateway(gateway);
  13.                 srv.startService();


  14.                 msg = new OutboundMessage(number, msgs);// 手机号码,和短信内容
  15.                 msg.setEncoding(MessageEncodings.ENCUCS2);// 这句话是发中文短信必须的
  16.                 srv.sendMessage(msg);
  17.                 srv.stopService();

  18.         }
复制代码





分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享
沙发
发表于 2014-6-20 10:37:39 | 只看该作者
任务不要用jdk自带的Timer类来实现,用quartz框架
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|小黑屋|未来时代科技 ( 粤ICP备12044031号-1

GMT+8, 2024-5-1 13:03 , Processed in 0.085486 second(s), 34 queries .

Powered by WLSD X3.1

© 2013-2014 WLSD Inc.

快速回复 返回顶部 返回列表
 
【电话】(15118131494)
【QQ】 未来时代科技01 售前咨询
【QQ】 未来时代科技02 售后技术
【旺旺】 请问有什么可以帮到您?不在线可留言.
【邮箱】
inextera@sina.com
【地址】 (深圳市龙岗坂田扬马小区)