定期监控程序
- web.xml
- <servlet>
- <servlet-name>TssDataImporterServlet</servlet-name>
- <servlet-class>com.bonc.tss.cust.importcust.TssDataImporterServlet</servlet-class>
- <load-on-startup>2</load-on-startup>
- </servlet>
- java:
- package com.bonc.tss.cust.importcust;
- import java.util.Timer;
- import java.util.TimerTask;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import com.bsst.javax.DataCenter;
- /**
- * Title: 导入文件监控类
- * Description: TSS电话营销系统
- * Copyright: Copyright BONC 2008
- * Company: 北京东方国信科技股份有限公司
- * @author 江兴春
- * @version 1.0
- */
- public class TssDataImporterServlet extends HttpServlet
- {
- private static final long serialVersionUID = 1L;
- //文件导入线程
- //定期检查文件导入到临时表中 (开启一个线程)
- private ImportToTempTable tempTask = null;
- //定期检查文件导入到最终表中 (开启一个线程)
- private ImportToResultTable ResultTask = null;
- //定期检查删除临时表中的数据 (开启一个线程)
- private DeleteTempTableData delTask = null;
- //定时器对象
- private Timer timer = null;
- /**
- * 清除
- */
- public void destroy()
- {
- super.destroy();
- if (timer != null)
- {
- timer.cancel();
- timer = null;
- }
- //将数据导入到临时表中对象
- if (tempTask != null)
- {
- tempTask = null;
- }
- //将数据导入到最终表对象
- if (ResultTask != null)
- {
- ResultTask = null;
- }
- //将临时表中数据删除对象
- if (delTask != null)
- {
- delTask = null;
- }
- }
- /**
- * Initialization of the servlet. <br>
- *
- * @throws ServletException if an error occurs
- */
- public void init() throws ServletException
- {
- //将数据导入到临时表
- tempTask = new ImportToTempTable();
- //导入到最终表中
- ResultTask = new ImportToResultTable();
- //删除临时表中的数据
- delTask = new DeleteTempTableData();
- timer = new Timer();
- //每30秒钟执行一次
- timer.schedule(tempTask, 1000, 30000);
- timer.schedule(ResultTask, 1000, 30000);
- timer.schedule(delTask, 1000, 30000);
- }
- }
- /**
- * 定期检查文件导入到临时表中
- */
- class ImportToTempTable extends TimerTask
- {
- /**
- * 构造函数
- */
- public ImportToTempTable()
- {
- ;
- }
- public void run()
- {
- //创建一个数据连接
- DataCenter dc = new DataCenter();
- try
- {
- dc.connect();
- dc.setAutoCommit(false);
- //导入到临时表中
- ImportCust ic = new ImportCust();
- boolean flag = ic.importToTemp(dc);
- if(flag)
- dc.commit();
- else
- dc.rollback();
- }
- catch (Exception _ex)
- {
- _ex.printStackTrace();
- dc.rollback();
- }
- finally
- {
- dc.disconnect();
- }
- }
- }
- /**
- * 定期检查文件导入到最终表中
- */
- class ImportToResultTable extends TimerTask
- {
- /**
- * 构造函数
- */
- public ImportToResultTable()
- {
- ;
- }
- public void run()
- {
- //创建一个数据连接
- DataCenter dc = new DataCenter();
- try
- {
- dc.connect();
- dc.setAutoCommit(false);
- //将数据导入正式表中
- ImportCust ic = new ImportCust();
- boolean flag = ic.insertToResultTable(dc);
- if(flag)
- dc.commit();
- else
- dc.rollback();
- }
- catch (Exception _ex)
- {
- dc.rollback();
- }
- finally
- {
- dc.disconnect();
- }
- }
- }
- /**
- * 定期检查删除临时表中的数据
- */
- class DeleteTempTableData extends TimerTask
- {
- /**
- * 构造函数
- */
- public DeleteTempTableData()
- {
- ;
- }
- public void run()
- {
- //创建一个数据连接
- DataCenter dc = new DataCenter();
- try
- {
- dc.connect();
- dc.setAutoCommit(false);
- //定期检查删除临时表中的数据
- ImportCust ic = new ImportCust();
- boolean flag = ic.delTempData(dc);
- if(flag)
- dc.commit();
- else
- dc.rollback();
- }
- catch (Exception _ex)
- {
- dc.rollback();
- }
- finally
- {
- dc.disconnect();
- }
- }
- }