【周期性执行事件】MySQL事件(Event)&任务调度
1.事件简介
事件(event)是MySQL在相应的时刻调用的过程式数据库对象。一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的“事件调度器”。
事件和触发器类似,都是在某些事情发生的时候启动。当数据库上启动一条语句的时候,触发器就启动了,而事件是根据调度事件来启动的。由于他们彼此相似,所以事件也称为临时性触发器。
事件取代了原先只能由操作系统的计划任务来执行的工作,而且MySQL的事件调度器可以精确到每秒钟执行一个任务,而操作系统的计划任务(如:Linux下的CRON或Windows下的任务计划)只能精确到每分钟执行一次。
2 事件的优缺点
2.1 优点
一些对数据定时性操作不再依赖外部程序,而直接使用数据库本身提供的功能。
可以实现每秒钟执行一个任务,这在一些对实时性要求较高的环境下就非常实用了。
2.2 缺点
定时触发,不可以调用。
3 创建事件
一条create
event语句创建一个事件。每个事件由两个主要部分组成,第一部分是事件调度(event
schedule),表示事件何时启动以及按什么频率启动,第二部分是事件动作(event action
),这是事件启动时执行的代码,事件的动作包含一条SQL语句,它可能是一个简单地insert或者update语句,也可以使一个存储过程或者
benin...end语句块,这两种情况允许我们执行多条SQL。
一个事件可以是活动(打开)的或停止(关闭)的,活动意味着事件调度器检查事件动作是否必须调用,停止意味着事件的声明存储在目录中,但调度器不会检查它是否应该调用。在一个事件创建之后,它立即变为活动的,一个活动的事件可以执行一次或者多次。
3.1 创建语法如下
名词解释:
event_name :创建的event名字(唯一确定的)。
ON SCHEDULE:计划任务。
schedule: 决定event的执行时间和频率(注意时间一定要是将来的时间,过去的时间会出错),有两种形式 AT和EVERY。
[ON COMPLETION [NOT] PRESERVE]: 可选项,默认是ON COMPLETION NOT PRESERVE 即计划任务执行完毕后自动drop该事件;ON COMPLETION PRESERVE则不会drop掉。
[COMMENT 'comment'] :可选项,comment 用来描述event;相当注释,最大长度64个字节。
[ENABLE | DISABLE] :设定event的状态,默认ENABLE:表示系统尝试执行这个事件, DISABLE:关闭该事情,可以用alter修改
DO event_body: 需要执行的sql语句(可以是复合语句)。CREATE EVENT在存储过程中使用时合法的。
3.2 开启关闭事件调度器
3.2.1 MySQL事件调度器event_scheduler负责调用事件,它默认是关闭的。这个调度器不断地监视一个事件是否要调用, 要创建事件,必须打开调度器。
3.2.2 开启事件调度器
通过命令行
可通过如下任何一个命令行
通过配置文件my.cnf
event_scheduler = 1 #或者ON
查看调度器线程
3.2.3 关闭事件调度器
通过命令行
可通过如下任何一个命令行
通过配置文件my.cnf
在[mysqld]下增加
event_scheduler = 0 #或者OFF,DISABLED
查看调度器线程
mysql> show processlist;
+----+------+-----------+------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------+------+---------+------+-------+------------------+
| 2 | root | localhost | NULL | Query | 0 | NULL | show processlist |
+----+------+-----------+------+---------+------+-------+------------------+
3.3 例如:创建一个表记录每次事件调度的名字和事件戳
3.3.1 创建测试表
3.3.2 创建事件1(立即启动事件)
查看事件执行结果
3.3.3 创建事件2(每分钟启动事件)
查看事件执行结果
3.4 注意:
默认创建事件存储在当前库中,也可显示指定事件创建在哪个库中
通过show events只能查看当前库中创建的事件
事件执行完即释放,如立即执行事件,执行完后,事件便自动删除,多次调用事件或等待执行事件可以查看到。
如果两个事件需要在同一时刻调用,mysql会确定调用他们的顺序,如果要指定顺序,需要确保一个事件至少在另一个事件1秒后执行
对于递归调度的事件,结束日期不能在开始日期之前。
select可以包含在一个事件中,然而他的结果消失了,就好像没执行过。
4 查看事件
查看当前所在库的事件
mysql> show events;
查看所有事件
mysql> select * from mysql.event;
5 修改事件
一条alter event语句可以修改事件的定义和属性。我们可以让一个事件成为停止的或者再次让它活动,也可以修改一个事件的名字或者整个调度。然而当一个使用 ON COMPLETION NOT PRESERVE 属性定义的事件最后一次执行后,事件直接就不存在了,不能修改。
5.1 语法如下:
5.2 例如
修改上面例子3.3.3 每分钟启动事件为每30秒启动
修改上面例子3.3.3 事件名字为event_second
alter event test.event_minute
rename to test.event_second;
修改上面例子3.3.3 事件为不活动和再次活动
alter event test.event_second disable;
alter event test.event_second enable;
6.删除事件
如果一个事件不再需要,我们可以使用一条drop event 语句删除它。使用这条语句我们不需要等到最后一次事件调用。
6.1 基本语法
DROP EVENT [IF EXISTS] event_name
6.2 例如
drop event if exists event_second;
//一个周期性根据时间修改状态的例子:
1.创建的存储过程
/*!50003 DROP PROCEDURE IF EXISTS `updateStatus` */; DELIMITER $$ /*!50003 CREATE DEFINER=`root`@`localhost` PROCEDURE `updateStatus`()
BEGIN
UPDATE exam SET `status`="已结束" where `status` != "已结束" AND (NOW() - endTime)>0 ;
UPDATE exam SET `status`="正在答题" where `status` != "已结束" AND ( NOW() - startTime)>=0
AND (NOW() - endTime)<0; UPDATE haulinfo SET bigStatus="已结束" where bigStatus != "已结束" AND (CURDATE() - bigEndDate)>0;
UPDATE haulinfo SET bigStatus="进行中" where bigStatus != "已结束" AND (CURDATE() - bigEndDate)<0
AND (CURDATE() - bigBeginDate)>=0 ;
UPDATE project set `status` = "完工" WHERE `status` != "完工" AND (CURDATE() - endDate)>0;
UPDATE project set `status` = "进行中" WHERE `status` != "完工" AND (CURDATE() - endDate)<0
AND (CURDATE() - startDate)>=0 ;
END */$$
DELIMITER ;
2.创建任务调度的事件(调用存储过程)
DELIMITER $$ /*!50106 CREATE DEFINER=`root`@`localhost` EVENT `eventUpdateStatus` ON SCHEDULE EVERY 1 SECOND STARTS '2017-11-21 00:12:44' ON COMPLETION PRESERVE ENABLE DO call updateStatus() */$$
DELIMITER ;
/* .... */ 在大部分语言中都一样是注释。这个之中的语句是不被执行的。
但MYSQL中 为了保持兼容,比如从mysqldump 导出的SQL语句能被其它数据库直接使用,它把一些特有的仅在MYSQL上的语句放在 /*! ... */ 中,这样这些语句如果在其它数据库中是不会被执行,但在MYSQL中它会执行。
例如:一个定时(每分钟)调用一个存储过程,存储过程根据进入黑名单时间推后一年删除记录,也就是从进入表开始计算一年后删除表
blacklist表结构:
aaarticlea/png;base64,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" alt="" />
存储过程:(根据当前时间与进入黑名单时间差够一年后删除)
delimiter // CREATE PROCEDURE clearEmploutBlack() BEGIN delete from blacklist where temporaryInStatus='' and employeeStatus='' and TIMESTAMPDIFF(YEAR,time,NOW())=1; END// delimiter ;
创建事件(每分钟调用上面存储过程)
CREATE event event_clearEmployOutBlack ON SCHEDULE EVERY 1 MINUTE STARTS NOW() DO CALL clearEmploutBlack() ;
【周期性执行事件】MySQL事件(Event)&任务调度的更多相关文章
- mysql定时任务(event事件)
1.event事件 事件(event)是MySQL在相应的时刻调用的过程式数据库对象.一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的“事件调度器” 事件和触发器类似,都 ...
- Mysql中event事件的入门
Mysql中event事件的入门 主要涉及的知识点:mysql的存储过程.mysql的event事件调度. 参考资料: Qiao_Zhi的博客:[周期性执行事件]MySQL事件(Event)& ...
- MySQL事件调度器event的使用
Q:假设,有一个需求,希望在某一个时刻系统调用一个begin end执行一下:十分钟以后执行一下begin end.亦或有一个需求,每个多长时间周期性执行begin end.那么这个时候该怎么办呢? ...
- mysql 事件(Event) 总结
1 事件简介 事件(event)是MySQL在相应的时刻调用的过程式数据库对象.一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的“事件调度器”. 事件和触发器类似,都是在 ...
- mysql定时任务(event事件)
1.事件简介 事件(event)是MySQL在相应的时刻调用的过程式数据库对象.一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的“事件调度器”. 事件和触发器类似,都是在 ...
- 【MySQL】Event事件与游标
MySQL的事件就像Linux系统上的定时任务,按照设置的时间或者间隔时间执行设置好的任务. 如果用SQLyog一类的写存储过程.触发器或者事件会省事一些,例如SQLyog就会生成一个大致的模板: D ...
- 使用mysql事件定时执行岗位七天下线任务
最近做了一个招聘的项目,在项目中有一个定时下线的需求.在做之前我一直在考虑到底使用window 服务,还是使用调度,最终我选择使用mysql定时事件,因为这样简单方便. 思路:首先创建一个存储过程,通 ...
- 【saltstack】saltstack执行结果和事件存储到mysql
前言 项目中使用saltstack有一段时间了,之前都是在控制台操作,后来感觉越来越不方便,每次操作需要登陆服务器,还需要记一堆命令.最重要的是,公司进新人之后,新人由于不熟悉saltstack,容易 ...
- MySQL 事件EVENT
一.用途用于某一时间执行一个事件或周期性执行一个事件. 二.语法CREATE [DEFINER = { user | CURRENT_USER }] EVENT [IF NOT EXISTS] eve ...
随机推荐
- AJPFX总结关于JVM的基础知识
写在前面 之前老大让做一些外包面试,我的问题很简单: 介绍一下工作中解决过比较 有意思的问题. HashMap使用中需要注意的点. 第一个问题主要是想了解一下对方项目经验的含金量,第二个问题则是测试下 ...
- for循环的两种写法哪个快
结果如下: 其实工作中,也没有这么多数据需要遍历,基本上用foreach
- R in action读书笔记(6)-第七章:基本统计分析(中)
7.2 频数表和列联表 > library(vcd) > head(Arthritis) ID Treatment Sex Age Improved 1 57 Treated Male 2 ...
- rar在linux下安装更新
1.下载:根据主机系统下载合适的版本,当前64为centos系统演示下载: wget http://www.rarlab.com/rar/rarlinux-x64-5.3.0.tar.gz 2.解压安 ...
- vue2.0 路由传参(router-link传过去)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- WebAPI中Area的使用
很简单,创建area后,添加一下代码到AreaRegistration中即可 context.Routes.MapHttpRoute( name: "api_default", r ...
- 洛谷 P1615 西游记公司
题目背景 一道极其无厘头的题目 题目描述 事情是这样的:西游记中的孙沙猪(孙杀猪)三徒弟在西天取经之后开始进入厦门大学经贸系学习经济,在1个小时的学习后,他们用暴力手段毕业了.然后,他们创办了三个公司 ...
- 获取tomcat服务器上的部分日志
Linux下tomcat的日志很大,有的几G大,要用什么工具查看或把日志文件拆解? 一般习惯用 tail 的方式在服务器查看.如果要取下 可以用 tail -2000 xxxx.log > te ...
- console.log()与console.dir()
console.log()可以取代alert()或document.write(),在网页脚本中使用console.log()时,会在浏览器控制台打印出信息. console.dir()可以显示一个对 ...
- Debug:This kind of launch is configured to openthe debug perspective when it解决办法
http://blog.sina.com.cn/s/blog_7ca3aa020100zlha.html 启动tomcat时,myeclipse报错: This kind of launch is c ...