MYSQL利用事件和存储过程实现执行定时任务
Posted 加洲旅馆2012
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MYSQL利用事件和存储过程实现执行定时任务相关的知识,希望对你有一定的参考价值。
比如有如下需求:删除某个表中当前时间距离日期字段(create_date) 大于8分钟的所有记录,每30s执行一次该操作。
1.创建存储过程test()
//删除ljh_test表中超过8分钟的记录
//date_add() 增加
//date_sub()减少
//month 月份 minute 分钟 second 秒
//例如:select DATE_ADD(NOW(),INTERVAL 1 MONTH); //一个月后的时间
CREATE PROCEDURE test ()
BEGIN
delete from ljh_test WHERE create_date <= DATE_SUB(NOW(),INTERVAL 8 MINUTE);
END;
2.创建事件e_test,每30秒执行test()存储过程
CREATE EVENT if not exists e_test
on schedule every 30 second
on completion preserve
do call test();
3.查看mysql中event_scheduler是否打开
show variables like \'event_scheduler\'
如果在关闭状态,需要打开它
set global event_scheduler=1;
启动某事件任务
alter event e_test ON COMPLETION PRESERVE ENABLE;
关闭某事件任务
alter event e_test ON COMPLETION PRESERVE DISABLE;
删除某事件
drop EVENT e_test
删除某存储过程
drop PROCEDURE test
以上是关于MYSQL利用事件和存储过程实现执行定时任务的主要内容,如果未能解决你的问题,请参考以下文章