自 MySQL5.1.6起,增加了一个非常有特色的功能–事件调度器(Event Scheduler),可以用做定时执行某些特定任务(例如:删除记录、对数据进行汇总等等),来取代原先只能由 *** 作系统的计划任务来执行的工作。更值得 一提的是MySQL的事件调度器可以精确到每秒钟执行一个任务,而 *** 作系统的计划任务(如:Linux下的CRON或Windows下的任务计划)只能精 确到每分钟执行一次。对于一些对数据实时性要求比较高的应用(例如:股票、赔率、比分等)就非常适合。
如:每隔30秒将执行存储过程test,将当前时间更新到examinfo表中id=14的记录的endtime字段中去.
CREATE PROCEDURE test ()
BEGIN
update examinfo SET endtime = now() WHERE id = 14
END
create event if not exists e_test
on schedule every 30 second
on completion preserve
do call test()
2. windows、linux 的定时任务 这个就不举例了,通过脚本定时去调用mysql执行
最常用的做法是使用UNIX的cron直接执行Java程序。并不需要在Java做的那么复杂。
Windows服务器也有类似于cron的任务管理功能,同理
--------------------------->
Tomcat不是用来管理定时任务的,如果没有HTTP请求,Servlet是不会被执行的。
建议lz把定期执行的处理做成一个独立的Java程序,用cron执行。
如果不想写独立的Java程序,也可以用cron定期向Tomcat发送Http请求,但是,这样做的话注意程序处理时间不能太长,因为HTTP通信有timeout的制约。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)