mysql 定时任务

浏览:835 发布日期:2018/12/17 分类:ThinkPHP5专区
mysql数据库默认时把定时任务关闭的;
1.查看定时任务是否开启的sql:[show VARIABLES LIKE '%event_scheduler%';/code]
如果显示为OFF的话则表示定时任务没有开启,如果为ON的话表示已经开启。
2.开启定时任务有两种:
    2.1一种是临时启动,修改就即时生效,无须重启mysql服务,不过下次mysql服务重启时,又会变成默认的,即没有开启定时任务,sql如下:[code]set global event_scheduler =1;       ## 0代表关闭 
2.2另一中是永久启动,这就要修改配置文件。在你mysql服务器启动加载的配置my.ini中的[mysqld]下面添加以下语句:
(对于centos 的Linux 来说一般就是 /etc/my.cnf 下的mysqld 下加入)event_scheduler=ON;由于修改了配置文件,故要重启mysql服务才能是修改的配置生效。
重启mysql -->service mysqld restart3.重点来了
3.1 创建一个存储过程
    begin
    update order_main set             STATUS='4',update_time=UNIX_TIMESTAMP(now()) where STATUS = 1 and  FROM_UNIXTIME(create_time)<(select date_sub(now(), interval 20 MINUTE));
end
    
在navicate 中如图
2.创建事件 定时调用上面的存储过程

作用是:
订单主表每30秒检测一下 创建事件超过20分钟的且订单状态未付款(statsu = 1)订单,将订单状态改为4 (也就是取消订单)
# 停止
ALTER EVENT eventName DISABLE;
# 开启
alter event eventName enable;
# 查看状态
select * from mysql.event
欢迎各位大佬加群共同学习 921044484
最佳答案
评论( 相关
后面还有条评论,点击查看>>