Mysql定时任务job实现案例

现在的项目业务需要用到mysql的job。因为之前接触过oracle job。现在整理一下MySQL得job。

#查看当前是否已开启事件调度器
show variables like 'event_scheduler';

在这里插入图片描述

#要想保证能够执行event事件,就必须保证定时器是开启状态,默认为关闭状态
set global event_scheduler =1;
#或者set GLOBAL event_scheduler = ON;

在这里插入图片描述

delimiter $$
 # 每天晚上01:00
create event SetEVToInvalidStatus_AtNight_0100  
#on schedule every 1 DAY   starts timestamp '2017-04-24 10:00:00'
# 测试使用 10 MINUTE  
on schedule every 10 MINUTE  starts timestamp '2018-11-30 11:10:10'
do
begin
    start transaction; #开始事务
    # 表1
   #select  * from  customer  where commonPool="";
    # 表2
    update customer set commonPool=1  where cust_sex='1';
    commit;  #提交事务

end  $$
delimiter ;

# 停止
ALTER EVENT SetEVToInvalidStatus_AtNight_0100  DISABLE;
# 开启
alter event SetEVToInvalidStatus_AtNight_0100  enable;

# 查看状态
select * from mysql.event

在这里插入图片描述
最后结果:
在这里插入图片描述

注意事项:真实的开发环境中,会遇到mysql服务重启或者断电的情况,此时则会出现事件调度器被关闭的情况,所有事件都不在起作用,要想解决这个办法,则需要在mysql.ini文件中加入event_scheduler = ON; 的语句

猜你喜欢

转载自blog.csdn.net/weixin_40725027/article/details/84646248
今日推荐