⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 loadblacklisttask.java

📁 监控整个SP系统的SMS信息通道的发送情况并且生成日志。 支持权限判断。
💻 JAVA
字号:
package com.infobank.superchannel.daemon.databasecache;import java.util.Hashtable;import java.util.LinkedList;import java.util.List;import java.util.Queue;import org.apache.commons.configuration.Configuration;import com.infobank.superchannel.database.DAO;import com.infobank.superchannel.pojo.BlackList;import com.infobank.superchannel.pojo.TextMessage;import com.infobank.superchannel.util.DaemonConfiguration;import com.infobank.superchannel.util.DatabaseConnectionPool;/** * @author Xiaoguang Sun * @version 类说明: Reload Blacklist Task */public class LoadBlackListTask implements Runnable{  private static LoadBlackListTask instance=new LoadBlackListTask();  private static boolean enabled=false;  private class BlackListSetting{    public String table;    public String dataSource;    public String entCode;    public String tag;  }    private static List<BlackListSetting> blackListSettings=new LinkedList<BlackListSetting>();  // 数据库缓冲服务器对象  private static DatabaseCacheDaemon daemon=null;  // 每次扫描扫描间隔时间(单位毫秒:1000毫秒=1秒)  private static int interval=3600000;    public static LoadBlackListTask getInstance(){    return instance;  }    public static void init(DatabaseCacheDaemon daemon){    LoadBlackListTask.daemon=daemon;    // 取得黑名单配置    DaemonConfiguration config=DaemonConfiguration.getInstance();    int numberOfBlacklist=0;    try{      numberOfBlacklist=config.getMaxIndex("/daemon[@type='DatabaseCache']/task/loader/blacklists/blacklist");    }catch(Exception ex){    }    if(numberOfBlacklist==0){      enabled=false;      return;    }    // 扫描间隔    interval=config.getInt("/daemon[@type='DatabaseCache']/task/loader/blacklists/interval",3600000);    for(int idx=1;idx<=numberOfBlacklist;++idx){          StringBuilder sb=new StringBuilder();          sb.append("/daemon[@type='DatabaseCache']/task/loader/blacklists/blacklist[");          sb.append(idx);          sb.append("]/");          String basePath=sb.toString();      BlackListSetting bls=instance.new BlackListSetting();          sb=new StringBuilder();          sb.append(basePath);          sb.append("@datasource");          bls.dataSource=config.getString(sb.toString());          if(bls.dataSource==null)            bls.dataSource="default";          sb=new StringBuilder();          sb.append(basePath);          sb.append("table");          bls.table=config.getString(sb.toString());          sb=new StringBuilder();          sb.append(basePath);          sb.append("tag");      bls.tag=config.getString(sb.toString());          sb=new StringBuilder();          sb.append(basePath);          sb.append("entcode/pattern");      bls.entCode=config.getString(sb.toString());      blackListSettings.add(bls);    }  }  public void reloadBlackList(DAO dao){    for(BlackListSetting setting:blackListSettings){      BlackList blacklist=dao.getBlackList(setting.dataSource,setting.table,setting.entCode);      if(blacklist!=null&&!blacklist.blacklist.isEmpty()){        blacklist.tag=setting.tag;        daemon.setBlackList(blacklist);      }    }  }  /**   * 新信息读取任务执行体   */  public void run() {    if(!enabled)      return;    DAO dao=DAO.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("Stopping blacklist loader");          return;        }      }            try {        // sleep first because we did this once in initialization phase        Thread.sleep(interval);       } catch (Exception e) {        System.out.println("Interrupted");        return;      }      reloadBlackList(dao);    }  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -