package com.listener;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Timer;
import java.util.TimerTask;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.springframework.jdbc.JdbcUpdateAffectedIncorrectNumberOfRowsException;
import com.util.DateUtil;
import com.util.JdbcUtil;
/**
*
* 工具类,公告定时器
* 对超过规定时间未审核的公告进行自动审核
*
* @author wushengxin
*
*/
public class NoticeListener implements ServletContextListener {
Timer timer = null;
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("工程销毁...");
if (timer != null) {
System.out.println("取消定时器");
timer.cancel();
}
}
/**
*
*
* 判断公告是否已超过规定时间未审核,对未审核的公告进行审核
*
*
*/
public void contextInitialized(ServletContextEvent sce) {
System.out.println("工程启动...");
timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
StringBuffer querySQL = new StringBuffer();
StringBuffer updateSQL = new StringBuffer();
querySQL.append("Select notice_id,notice_addtime");
querySQL.append(" From T_Notice");
querySQL.append(" where 1 = 1");
querySQL.append(" and is_approve = 0");
querySQL.append(" order by notice_id asc");
String sysTime = DateUtil.getSysDateTime();
try {
conn = JdbcUtil.getConn();
stmt = conn.createStatement();
rs = stmt.executeQuery(querySQL.toString());
while (rs.next()) {
int notice_id = rs.getInt("notice_id");
String notice_addtime = rs.getString("notice_addtime");
long diffdays = DateUtil.diffTimeForDay(sysTime,
notice_addtime);
if (diffdays >= 3) {
updateSQL.setLength(0);
updateSQL.append("Update T_Notice set ");
updateSQL.append(" is_approve = 1,");
updateSQL.append(" approve_user = '系统自动审核',");
updateSQL.append(" approve_time = '" + sysTime
+ "'");
updateSQL.append(" where 1= 1");
updateSQL.append(" and notice_id = '" + notice_id
+ "'");
stmt.addBatch(updateSQL.toString());
}
}
stmt.executeBatch();
} catch (Exception e) {
e.printStackTrace();
} finally {
JdbcUtil.closeResource(rs, stmt, conn);
}
}
}, 5000, 1000 * 20);
}
}
监听器参考实例
最新推荐文章于 2021-05-26 03:52:58 发布
808

被折叠的 条评论
为什么被折叠?



