java实现定时任务
来源:互联网 发布:买家的评价被淘宝删除 编辑:程序博客网 时间:2024/04/30 07:18
一、Mysql实现
查看event是否开启
如果不做这一步,事件创建后,
将会发现‘事件计划已关闭。事件只能在服务器启动并开启事件计划时才能处理。'的警告。
通过下列语句l爱查询event是否开启
show variables like '%sche%';
通过执行下列语句,来开启event_scheduler
set global event_scheduler =1;新建存储过程
可以从navicat界面的‘函数’进入,也可以直接用查询建立。
查询建立:
CREATE PROCEDURE test ()
BEGIN
update profile set single=19 where id = any (SELECT id FROM (select tmp.* from profile tmp WHERE birthday<=NOW()) as p);
END;界面中建立:
命名为test
BEGIN
update profile set single=19 where id = any (SELECT id FROM (select tmp.* from profile tmp WHERE birthday<=NOW()) as p);
END这个地方要注意,同一个表不能作为本表的subquery,所以就从临时表里把数据取出来,这样就不是同查同更。
新建Event
从界面中的‘事件’进入
定义中就直接写
call test();
计划里,基本上看看就知道什么意思
不过starts和ends的时间格式应该是:2012-12-11 19:06:00
我设成20秒一更新
经测试成功
二、java实现
package com.gdzy.CPZX.util;import java.util.Calendar;import java.util.Date;import java.util.Timer;import java.util.TimerTask;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;public class oneTimer implements ServletContextListener{private Timer timer = null;//时间间隔private static long INTERVALTIME = 1 * 60 * 1000 ;public oneTimer() {Calendar calendar = Calendar.getInstance(); /*** 定制每日0:00执行方法 ***/calendar.set(Calendar.HOUR_OF_DAY, 17);calendar.set(Calendar.MINUTE, 0);calendar.set(Calendar.SECOND, 0); Date date=calendar.getTime(); //第一次执行定时任务的时间 //如果第一次执行定时任务的时间 小于 当前的时间//此时要在 第一次执行定时任务的时间 加一天,以便此任务在下个时间点执行。如果不加一天,任务会立即执行。if (date.before(new Date())) { date = this.addDay(date, 1);}timer = new Timer(true);timer.schedule(new MyJob(), date, INTERVALTIME);}//定时任务要执行的方法class MyJob extends TimerTask {public void run() { System.out.println("定时任务!"+new Date()); } }public void contextInitialized(ServletContextEvent event) {new oneTimer();}public void contextDestroyed(ServletContextEvent event) {timer.cancel();}public Date addDay(Date date, int num) {Calendar startDT = Calendar.getInstance();startDT.setTime(date);startDT.add(Calendar.DAY_OF_MONTH, num);return startDT.getTime();}}
web.xml里需加入
<listener>
<listener-class>com.gdzy.CPZX.util.oneTimer</listener-class>
</listener>
- 定时任务实现 java
- java 定时任务实现
- Java定时任务实现
- java实现定时任务
- 实现java定时任务
- java定时任务实现
- java实现定时任务
- java实现定时任务
- java实现定时任务
- Java实现定时任务
- java Timer实现定时任务
- Java定时任务的实现
- Java定时任务的实现
- Java定时任务的实现
- Java定时任务的实现
- Java定时任务的实现
- Java定时任务的实现
- Java定时任务的实现
- 8086汇编语言 retf指令实例
- Expected BEGIN_OBJECT but was BEGIN_ARRARY at line 1 column 2 path$异常解决方法
- HPC-BeeGFS
- final
- solr增量索引问题
- java实现定时任务
- 完全背包
- Ubuntu下Caffe安装测试
- 基本排序算法
- 你真的会用Gson吗?Gson使用指南(二)
- centos 安装apache2.4
- (4.6.17.5)进程保活(三:5.0以下):native保活5.0以下方案推演过程以及代码详述
- AsyncTask 第一篇使用篇
- ORACLE SELECT INTO防止没结果时报错