www.pudn.com > Community_open20061104.rar > ForumSchedulerUnit.java~16~


package com.redmoon.forum; 
 
import cn.js.fan.kernal.BaseSchedulerUnit; 
import cn.js.fan.util.ErrMsgException; 
import cn.js.fan.db.Conn; 
import cn.js.fan.web.Global; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import org.apache.log4j.Logger; 
import java.util.Date; 
import java.sql.PreparedStatement; 
import com.redmoon.forum.message.MessageDb; 
 
 
/** 
 * 

Title:

* *

Description:

* *

Copyright: Copyright (c) 2005

* *

Company:

* * @author not attributable * @version 1.0 */ public class ForumSchedulerUnit extends BaseSchedulerUnit { static Logger logger = Logger.getLogger(ForumSchedulerUnit.class.getName()); static int refreshOnlineInterval = 5; // 5分钟 static long lastRefreshOnlineIntervalTime; static long lastClearUserMessageInerval = System.currentTimeMillis(); static long clearUserMessageInterval = 86400000; // 每隔24小时清除用户超出容量的短信息 static int message_expire_day = 150; // 天 static { Config cfg = new Config(); refreshOnlineInterval = cfg.getIntProperty("forum.refreshOnlineInterval"); message_expire_day = cfg.getIntProperty("forum.message_expire_day"); clearUserMessageInterval =cfg.getIntProperty("interval_clear_message"); name = "论坛调度器"; } public ForumSchedulerUnit() { lastTime = System.currentTimeMillis(); interval = 600000; // 每隔10分钟刷新一次 lastRefreshOnlineIntervalTime = System.currentTimeMillis(); lastClearUserMessageInerval = System.currentTimeMillis(); } /** * OnTimer * * @param currentTime long * @todo Implement this cn.js.fan.kernal.ISchedulerUnit method */ public void OnTimer(long curTime) { // logger.info("curTime=" + curTime); if (curTime-lastTime>=interval) { action(); lastTime = curTime; } if (curTime-lastRefreshOnlineIntervalTime>=refreshOnlineInterval) { OnlineUserDb oud = new OnlineUserDb(); oud.refreshOnlineUser(); lastRefreshOnlineIntervalTime = curTime; } if (curTime - lastClearUserMessageInerval >= clearUserMessageInterval) { clearMessageExpired(message_expire_day); lastClearUserMessageInerval = curTime; } } public void clearMessageExpired(int expireDay) { MessageDb md = new MessageDb(); md.clearMessageExpired(expireDay); } public synchronized void action() { refreshColor(); refreshBold(); } public void refreshBold() { MsgDb md = new MsgDb(); String sql = "select id from sq_message where isBold=1 and boldExpire'' and colorExpire