MySQL 事件调度器示例演示html
咱们你们都知道MySQL 事件调度器是在 MySQL 5.1 中新生的一个较为特殊的功能,其能够做为定时任务调度器,来取代部分原先只能用操做系统任务调度器才能完成的定时功能。望如下的文章会给你提供更全面的知识。spa
1、概述操作系统
事件调度器是在 MySQL 5.1 中新增的另外一个特点功能,能够做为定时任务调度器,取代部分原先只能用操做系统任务调度器才能完成的定时功>能。例如,Linux 中的 crontabe 只能精确到每分钟执行一次,而 MySQL 事件调度器则能够实现每秒钟执行一个任务,这在一些对实时性要>求较高的环境下就很是实用了。线程
事件调度器是定时触发执行的,在这个角度上也能够称做是"临时的触发器"。触发器只是针对某个表产生的事件执行一些语句,而事件调度器则是在某一个(间隔)时间执行一些语句。事件是由一个特定的线程来管理的,也就是所谓的"事件调度器"。启用事件调度器后,拥有 SUPER 权限的帐户执行 SHOW PROCESSLIST 就能够看到这个线程了。经过设定全局变量event_scheduler 的值便可动态的控制MySQL 事件调度器是否启用。orm
4. rowhtm
如上,该线程的全部者是 event_scheduler。blog
2、MySQL 事件调度器的应用案例事件
本案例是利用 event scheduler 的特性,每秒钟调用一次存储过程,用于判断 SLAVE 是否正常运行,若是发现 SLAVE 关闭了,忽略 0 次错误,而后从新启动 SLAVE。crontab
首先建立存储过程ssl
因为存储过程当中没法调用相似 SHOW SLAVE STATUS 这样的语句,所以没法获得确切的复制错误信息和错误代码,不能进一步的处理 SLAVE 中止的各类状况。
接着,建立任务
建立了一个任务,每 5秒钟 执行一次,任务结束后依旧保留该任务,而不是删除。固然了,在本例中的任务不会结束,除非将它手动禁止了。
若是在运行中想要临时关闭一下某个任务,执行 ALTER EVENT 语句便可: