📄 oaschedulerunit.java
字号:
package com.redmoon.oa;import cn.js.fan.kernel.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 com.redmoon.oa.message.MessageDb;import com.redmoon.oa.person.PlanDb;import java.sql.PreparedStatement;import com.redmoon.oa.person.UserDb;import java.util.Iterator;import com.redmoon.oa.flow.MyActionDb;public class OASchedulerUnit extends BaseSchedulerUnit { static Logger logger = Logger.getLogger(OASchedulerUnit.class.getName()); static long lastRemindTime = System.currentTimeMillis(); static long remindInterval = 600000; static long lastClearProxyExpiredInterval = System.currentTimeMillis(); static long clearProxyExpiredInterval = 300000; static long lastClearUserMessageInerval = System.currentTimeMillis(); static long clearUserMessageInterval = 86400000; public OASchedulerUnit() { lastTime = System.currentTimeMillis(); interval = 1800000; name= "OA Scheduler Unit"; com.redmoon.oa.Config cfg = new com.redmoon.oa.Config(); String str1 = cfg.get("interval_remind_user_plan"); remindInterval = Long.parseLong(str1); String str2 = cfg.get("interval_clear_proxy_expired"); clearProxyExpiredInterval = Long.parseLong(str2); String str3 = cfg.get("interval_flow_hurry"); interval = Long.parseLong(str3); String str4 = cfg.get("interval_clear_message"); clearUserMessageInterval = Long.parseLong(str4); } public void OnTimer(long curTime) { if (curTime-lastTime>=interval) { action(); lastTime = curTime; } if (curTime - lastRemindTime >= remindInterval) { sendRemindMsg(); lastRemindTime = curTime; } if (curTime - lastClearProxyExpiredInterval >= clearProxyExpiredInterval) { try { clearProxyExpired(); } catch (ErrMsgException e) { logger.error("OnTimer:" + e.getMessage()); } lastClearProxyExpiredInterval = curTime; } if (curTime - lastClearUserMessageInerval >= clearUserMessageInterval) { clearUserMessage(); lastClearUserMessageInerval = curTime; } } public void clearUserMessage() { UserDb ud = new UserDb(); Iterator ir = ud.list().iterator(); MessageDb md = new MessageDb(); while (ir.hasNext()) { md.clearMsgOfUser(ud.getName()); } } public synchronized void action() { sendFlowHurryMsg(); } public void sendRemindMsg() { PlanDb pd = new PlanDb(); pd.makeRemindMsg(); } public void sendFlowHurryMsg() { } void clearProxyExpired() throws ErrMsgException { String sql = "select name from users where proxyBeginDate>NOW() and proxyEndDate<NOW() and proxy<>''"; PreparedStatement pstmt = null; ResultSet rs = null; Conn conn = new Conn(Global.defaultDB); try { pstmt = conn.prepareStatement(sql); rs = conn.executePreQuery(); while (rs.next()) { String userName = rs.getString(1); MyActionDb mad = new MyActionDb(); mad.clearProxyOfUser(userName); } } catch (SQLException e) { logger.error("clearProxyExpired:" + e.getMessage()); } finally { if (rs != null) { try { rs.close(); } catch (Exception e) {} rs = null; } if (pstmt != null) { try { pstmt.close(); } catch (Exception e) {} pstmt = null; } if (conn != null) { conn.close(); conn = null; } } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -