定期监控程序

 定期监控程序

 

  1. web.xml
  2.     <servlet>
  3.      <servlet-name>TssDataImporterServlet</servlet-name>
  4.      <servlet-class>com.bonc.tss.cust.importcust.TssDataImporterServlet</servlet-class>
  5.      <load-on-startup>2</load-on-startup>
  6.     </servlet>
  7. java:
  8. package com.bonc.tss.cust.importcust;
  9. import java.util.Timer;
  10. import java.util.TimerTask;
  11. import javax.servlet.ServletException;
  12. import javax.servlet.http.HttpServlet;
  13. import com.bsst.javax.DataCenter;
  14. /**
  15.  * Title: 导入文件监控类
  16.  * Description: TSS电话营销系统
  17.  * Copyright: Copyright BONC 2008
  18.  * Company: 北京东方国信科技股份有限公司
  19.  * @author 江兴春
  20.  * @version 1.0
  21.  */
  22. public class TssDataImporterServlet extends HttpServlet 
  23. {
  24.     private static final long serialVersionUID = 1L;
  25.     //文件导入线程
  26.     //定期检查文件导入到临时表中 (开启一个线程)
  27.     private ImportToTempTable tempTask = null;
  28.     //定期检查文件导入到最终表中 (开启一个线程)
  29.     private ImportToResultTable ResultTask = null;
  30.     //定期检查删除临时表中的数据 (开启一个线程)
  31.     private DeleteTempTableData delTask = null
  32.     //定时器对象
  33.         private Timer timer = null
  34.     /**
  35.      * 清除
  36.      */
  37.     public void destroy() 
  38.     {
  39.         super.destroy();
  40.         if (timer != null)
  41.         {
  42.             timer.cancel();
  43.             timer = null;
  44.         }
  45.         //将数据导入到临时表中对象
  46.         if (tempTask != null)
  47.         {
  48.             tempTask = null;
  49.         }
  50.         //将数据导入到最终表对象
  51.         if (ResultTask != null)
  52.         {
  53.             ResultTask = null;
  54.         }
  55.         //将临时表中数据删除对象
  56.         if (delTask != null)
  57.         {
  58.             delTask = null;
  59.         }
  60.     }
  61.     /**
  62.      * Initialization of the servlet. <br>
  63.      *
  64.      * @throws ServletException if an error occurs
  65.      */
  66.     public void init() throws ServletException 
  67.     {
  68.          //将数据导入到临时表
  69.         tempTask = new ImportToTempTable();
  70.         //导入到最终表中
  71.         ResultTask = new ImportToResultTable();
  72.         //删除临时表中的数据
  73.         delTask = new DeleteTempTableData();
  74.         
  75.         timer = new Timer();
  76.         //每30秒钟执行一次
  77.         timer.schedule(tempTask, 1000, 30000);
  78.         timer.schedule(ResultTask, 1000, 30000);
  79.         timer.schedule(delTask, 1000, 30000);
  80.     }
  81. }
  82. /**
  83.  * 定期检查文件导入到临时表中
  84.  */
  85. class ImportToTempTable extends TimerTask
  86. {
  87.     /**
  88.      * 构造函数
  89.      */
  90.     public ImportToTempTable()
  91.     {
  92.         ;
  93.     }
  94.     public void run()
  95.     {
  96.         //创建一个数据连接
  97.         DataCenter dc = new DataCenter();
  98.         try
  99.         {
  100.             dc.connect();
  101.             dc.setAutoCommit(false);
  102.             //导入到临时表中
  103.             ImportCust ic = new ImportCust();
  104.             boolean flag = ic.importToTemp(dc);
  105.             if(flag)
  106.                 dc.commit();
  107.             else
  108.                 dc.rollback();
  109.         }
  110.         catch (Exception _ex)
  111.         {
  112.             _ex.printStackTrace();
  113.             dc.rollback();
  114.         }
  115.         finally
  116.         {
  117.             dc.disconnect();
  118.         }
  119.     }
  120. }
  121.     
  122. /**
  123.  * 定期检查文件导入到最终表中
  124.  */
  125. class ImportToResultTable extends TimerTask
  126. {
  127.     /**
  128.      * 构造函数
  129.      */
  130.     public ImportToResultTable()
  131.     {
  132.         ;
  133.     }
  134.     public void run()
  135.     {
  136.         //创建一个数据连接
  137.         DataCenter dc = new DataCenter();
  138.         try
  139.         {
  140.             dc.connect();
  141.             dc.setAutoCommit(false);
  142.             //将数据导入正式表中
  143.             ImportCust ic = new ImportCust();
  144.             boolean flag = ic.insertToResultTable(dc);
  145.             if(flag)
  146.                 dc.commit();
  147.             else
  148.                 dc.rollback();
  149.         }
  150.         catch (Exception _ex)
  151.         {
  152.             dc.rollback();
  153.         }
  154.         finally
  155.         {
  156.             dc.disconnect();
  157.         }
  158.     }
  159. }
  160.     
  161. /**
  162.  * 定期检查删除临时表中的数据
  163.  */
  164. class DeleteTempTableData extends TimerTask
  165. {
  166.     /**
  167.      * 构造函数
  168.      */
  169.     public DeleteTempTableData()
  170.     {
  171.         ;
  172.     }
  173.     public void run()
  174.     {
  175.         //创建一个数据连接
  176.         DataCenter dc = new DataCenter();
  177.         try
  178.         {
  179.             dc.connect();
  180.             dc.setAutoCommit(false);
  181.             
  182.             //定期检查删除临时表中的数据
  183.             ImportCust ic = new ImportCust();
  184.             boolean flag = ic.delTempData(dc);
  185.             if(flag)
  186.                 dc.commit();
  187.             else
  188.                 dc.rollback();
  189.         }
  190.         catch (Exception _ex)
  191.         {
  192.             dc.rollback();
  193.         }
  194.         finally
  195.         {
  196.             dc.disconnect();
  197.         }
  198.     }
  199. }
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值