updatestatustask.java.svn-base
来自「监控整个SP系统的SMS信息通道的发送情况并且生成日志。 支持权限判断。」· SVN-BASE 代码 · 共 71 行
SVN-BASE
71 行
package com.infobank.superchannel.daemon.databasecache;import java.util.Queue;import org.apache.commons.configuration.Configuration;import com.infobank.superchannel.database.DAO;import com.infobank.superchannel.pojo.TextMessage;import com.infobank.superchannel.util.DaemonConfiguration;import com.infobank.superchannel.util.DatabaseConnectionPool;/** * @author Xiaoguang Sun * @version 类说明: 状态回写任务 */public class UpdateStatusTask implements Runnable { // 数据库缓冲服务器对象 private DatabaseCacheDaemon daemon=null; // 每次回写数据时间间隔(单位毫秒:1000毫秒=1秒) private int interval=0; /** * 构造函数 * @param daemon 数据库缓冲服务器对象 */ public UpdateStatusTask(DatabaseCacheDaemon daemon){ this.daemon=daemon; DaemonConfiguration config=DaemonConfiguration.getInstance(); interval=config.getInt("/daemon[@type='DatabaseCache']/task/updater/status/interval"); } /** * 信息状态回写任务执行体 */ public void run() { DAO dao=DAO.getInstance(); DatabaseConnectionPool dbcp=DatabaseConnectionPool.getInstance(); while(daemon.isRunnable()){ try{ if(daemon.isPaused()){ Thread.sleep(interval); continue; } } catch (InterruptedException ex){ // interrupted. probably want to exit if(!daemon.isRunnable()){ System.out.println("正在停止数据更新任务"); return; } } // 取得待回写信息状态 Queue<TextMessage> pendingStatus=daemon.getPendingStatusUpdate(); if(pendingStatus!=null&&!pendingStatus.isEmpty()){ // 将信息回写回数据库 dao.updateMessageStatus(pendingStatus); } try { Thread.sleep(interval); //查询表的间隔 } catch (Exception e) { System.err.println("Interrupted"); return; } } }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?