web应用中的调度——简介
来源:互联网 发布:mac安装hexo 编辑:程序博客网 时间:2024/05/18 07:50
首先,任务调度的思想就是: 设置一个任务,使容器在指定的时间,及指定的时间间隔一次或多次的做这个任务。
实现的方式是java的定时器(也有用触发器的)。在servlet里面设置一个定时器,让该定时器在容器开始运行的时候就设置好,然后就是设置定时任务,在定时任务中完成自己的任务。
web.xml配置:
<servlet> <servlet-name>DutyRemindUtil</servlet-name> <servlet-class>com.xxx.xxxx.web.xx.xx.dutyMg.util.DutyRemindServlet</servlet-class> <init-param><param-name>startTask</param-name><!-- 设置servlet初始参数 --><param-value>true</param-value> </init-param><init-param><param-name>intervalTime</param-name><param-value>1</param-value></init-param><load-on-startup>20</load-on-startup> <!-- load-on-startup设置servlet的优先级 --></servlet>
servlet :
<pre name="code" class="java">public class DutyRemindServlet extends HttpServlet{private static final long serialVersionUID = 1L;private Timer DutyRemindTimer = null;private TimerTask DutyRemindTimerTask = null;public DutyRemindServlet(){super();}public void destroy(){super.destroy();if(DutyRemindTimer != null){DutyRemindTimer.cancel();}}public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {super.doGet(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {super.doPost(request, response);}public void init(ServletConfig config)throws ServletException {super.init(config); String startTask = getInitParameter("startTask"); Long intervalTime = Long.parseLong(getInitParameter("intervalTime")); Date now = new Date();@SuppressWarnings("deprecation")Date target = new Date(now.getYear(),now.getMonth(),now.getDate(),00,05,00); // 启动定时器 if(startTask.equals("true")){ DutyRemindTimer = new Timer(); DutyRemindTimerTask =new DutyRemindTimerTask();// DutyRemindTimer.schedule(DutyRemindTimerTask, target, intervalTime * 60 * 60 * 24 * 1000); DutyRemindTimer.scheduleAtFixedRate(DutyRemindTimerTask, target, intervalTime * 60 * 60 * 24 * 1000); }}}
调度任务class(继承自 TimerTask 类):
public class DutyRemindTimerTask extends TimerTask{Log Logger = LogFactory.getLog(DutyRemindTimerTask.class);@Overridepublic void run(){ResponseObject result = ServiceUtils.invoke("component:oa/dutyMg.daily.dutyRemind", "setDutyRemind", null); //调度任务Logger.debug("值班人员通知:已发出"+result.getResult()+"条消息");}}
关于java Timer的使用可以参考一下链接:http://www.cnblogs.com/yank/p/3955322.html
0 0
- web应用中的调度——简介
- Java Web应用中的任务调度
- Java Web应用中的任务调度
- Java Web应用中的任务调度
- 企业应用中的作业调度
- Linux中的进程调度方法简介
- Java Web应用中任务调度解析
- JDBC在Java Web中的应用——分页查询
- 主流Web应用服务器简介
- 主流Web应用服务器简介
- linux中的调度策略和优先级应用
- BlockingQueue在任务调度中的精彩应用
- 任务调度(三)——Timer的替代品ScheduledExecutorService简介
- LVS系列—10种调度算法简介
- WEB前端开发一 WEB应用简介
- WEB中的MYSQL应用
- TomCat中的web应用
- Web应用中的本地化
- android activity 隐藏输入法
- ZooKeeper典型应用场景一览
- Debug过程鼠标悬停在复杂结构体显示相应参数
- Devour Magic 线段树
- django post出现403的解决办法 据说,从django1.x开始,加入了CSRF保护。
- web应用中的调度——简介
- 《设计模式》读书笔记_A
- vim文本替换
- Java中List的安全删除
- <jsp:include></jsp:include>和<%@ include %>的区别
- easyui datagrid toolbar 添加搜索框
- Spring MVC入门 —— 跟开涛学SpringMVC
- 广州大学第九届ACM C----不要47
- 线性代数导论21——特征值和特征向量