- 浏览: 530187 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
zfx1982:
楼主能把doubango和webrtc2sip的源码发我一份么 ...
CentOS下编译webrtc2sip实战 -
zfx1982:
请问在编译doubango的时候configure总是说少sr ...
CentOS下编译webrtc2sip实战 -
cgs1999:
845896876 写道老师你好,我发现// 自定义属性 ...
使用Java操作LDAP案例 -
845896876:
老师你好,我发现// 自定义属性 a ...
使用Java操作LDAP案例 -
myitela:
NAT即地址转换,也可以是内网地址与外网地址的转换。如nat1 ...
NAT与NAT穿越学习总结
1、引言
项目商用环境上,用户反馈有个统计存在问题,排查后发现,是由于增加了一台业务服务器,导致了两台业务服务器上报的数据中,服务器的ID不匹配所致。在不发布修正版本的情况下,希望能快速快速解决这个统计问题,经过讨论后决定从数据库的层面解决该问题,即增加触发器或定时器将两个服务器的ID数据修改成一致的即可,但考虑到触发器可能会对性能影响比较大,最终采用了定时器来解决该问题。
项目采用的是MySQL,下面就创建MySQL定时器的过程进行说明。
2、解决过程
2.1 配置
1、首先查询一下MySQL是否已经开启了定时事件(默认是关闭的),命令如下
若event_scheduler参数不是是ON,那么修改MySQL的配置文件(Linux下为my.cnf,Windows为my.ini),在[mysqld]下增加下面的配置
若修改了MySQL的配置文件,那么请重启MySQL服务,使之生效。
2.2 创建测试表
使用下面的SQL创建测试表test_event
2.3 创建定时器
使用下面的脚本创建定时器,SQL如下所示:
其中:
(1)“SET GLOBAL event_scheduler = ON$$”,设置event_scheduler为开启;
特别说明:
该语句可以设置开启MySQL的定时任务,但一旦mysql服务重启后,还是会还原为之前的状态,即配置文件配置的是OFF的话,执行了该语句后修改为了ON,但重启后event_scheduler为OFF,也就是说该语句只修改服务器内存的状态,只对本次MySQL服务有效,MySQL服务重启后,服务器会重新从配置文件中读取该配置,所以建议通过修改配置文件的方式来修改该配置,防止重启MySQL服务后导致定时任务失效的情况;
(2)“ON SCHEDULE EVERY 5 SECOND STARTS '2016-11-29 00:30:00'”,设置定时器的时间,从'2016-11-29 00:30:00'开始,每5秒执行一次;
(3)“BEGIN”和“END$$”之间为执行的SQL语句,若执行的语句比较复杂,可以写成函数或存储过程;
创建定时器成功,则使用下面命令,即可从结果中查看到新增的定时器
2.4 验证
使用下面SQL查看测试表的数据
结果如下,每5秒自动插入一条记录,说明定时任务。
3、关于定时器时间设置
(1)执行一次,格式如下:
(2)创建后一直定时执行,格式如下:
(3)指定开始时间、结束时间和执行周期,格式如下:
4、参考资料
[1] MySQL官网手册
http://dev.mysql.com/doc/refman/5.6/en/create-event.html
[2] mysql创建定时任务
http://blog.csdn.net/mer1234567/article/details/7514855
项目商用环境上,用户反馈有个统计存在问题,排查后发现,是由于增加了一台业务服务器,导致了两台业务服务器上报的数据中,服务器的ID不匹配所致。在不发布修正版本的情况下,希望能快速快速解决这个统计问题,经过讨论后决定从数据库的层面解决该问题,即增加触发器或定时器将两个服务器的ID数据修改成一致的即可,但考虑到触发器可能会对性能影响比较大,最终采用了定时器来解决该问题。
项目采用的是MySQL,下面就创建MySQL定时器的过程进行说明。
2、解决过程
2.1 配置
1、首先查询一下MySQL是否已经开启了定时事件(默认是关闭的),命令如下
/* 查看event_scheduler参数*/ SHOW VARIABLES LIKE '%event_scheduler%';
若event_scheduler参数不是是ON,那么修改MySQL的配置文件(Linux下为my.cnf,Windows为my.ini),在[mysqld]下增加下面的配置
[mysqld] event_scheduler=ON
若修改了MySQL的配置文件,那么请重启MySQL服务,使之生效。
2.2 创建测试表
使用下面的SQL创建测试表test_event
CREATE TABLE `test_event` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAULT NULL, `create_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', `update_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2.3 创建定时器
使用下面的脚本创建定时器,SQL如下所示:
DELIMITER $$ SET GLOBAL event_scheduler = ON$$ DROP EVENT IF EXISTS `insert_event_example`; CREATE EVENT `insert_event_example` ON SCHEDULE EVERY 5 SECOND STARTS '2016-11-29 00:30:00' DO BEGIN INSERT INTO test_event(`name`,`create_time`,`update_time`) VALUES(UUID(),NOW(),NOW()); END$$ DELIMITER ;
其中:
(1)“SET GLOBAL event_scheduler = ON$$”,设置event_scheduler为开启;
引用
特别说明:
该语句可以设置开启MySQL的定时任务,但一旦mysql服务重启后,还是会还原为之前的状态,即配置文件配置的是OFF的话,执行了该语句后修改为了ON,但重启后event_scheduler为OFF,也就是说该语句只修改服务器内存的状态,只对本次MySQL服务有效,MySQL服务重启后,服务器会重新从配置文件中读取该配置,所以建议通过修改配置文件的方式来修改该配置,防止重启MySQL服务后导致定时任务失效的情况;
(2)“ON SCHEDULE EVERY 5 SECOND STARTS '2016-11-29 00:30:00'”,设置定时器的时间,从'2016-11-29 00:30:00'开始,每5秒执行一次;
(3)“BEGIN”和“END$$”之间为执行的SQL语句,若执行的语句比较复杂,可以写成函数或存储过程;
创建定时器成功,则使用下面命令,即可从结果中查看到新增的定时器
SHOW EVENTS;
2.4 验证
使用下面SQL查看测试表的数据
mysql> select * from test_event;
结果如下,每5秒自动插入一条记录,说明定时任务。
id | name | create_time | update_time |
1 | ed2ecc05-b5fa-11e6-82f8-989096ac7070 | 2016-11-29 14:13:20 | 2016-11-29 14:13:20 |
2 | f029c3ed-b5fa-11e6-82f8-989096ac7070 | 2016-11-29 14:13:25 | 2016-11-29 14:13:25 |
3 | f324b979-b5fa-11e6-82f8-989096ac7070 | 2016-11-29 14:13:30 | 2016-11-29 14:13:30 |
4 | f61feee8-b5fa-11e6-82f8-989096ac7070 | 2016-11-29 14:13:35 | 2016-11-29 14:13:35 |
5 | f91aca53-b5fa-11e6-82f8-989096ac7070 | 2016-11-29 14:13:40 | 2016-11-29 14:13:40 |
6 | fc15e1e1-b5fa-11e6-82f8-989096ac7070 | 2016-11-29 14:13:45 | 2016-11-29 14:13:45 |
7 | ff10e0b4-b5fa-11e6-82f8-989096ac7070 | 2016-11-29 14:13:50 | 2016-11-29 14:13:50 |
8 | 020bfa59-b5fb-11e6-82f8-989096ac7070 | 2016-11-29 14:13:55 | 2016-11-29 14:13:55 |
9 | 0506f082-b5fb-11e6-82f8-989096ac7070 | 2016-11-29 14:14:00 | 2016-11-29 14:14:00 |
10 | 08020160-b5fb-11e6-82f8-989096ac7070 | 2016-11-29 14:14:05 | 2016-11-29 14:14:05 |
11 | 0afcfc6e-b5fb-11e6-82f8-989096ac7070 | 2016-11-29 14:14:10 | 2016-11-29 14:14:10 |
12 | 0df7fddd-b5fb-11e6-82f8-989096ac7070 | 2016-11-29 14:14:15 | 2016-11-29 14:14:15 |
13 | 10f2fbbc-b5fb-11e6-82f8-989096ac7070 | 2016-11-29 14:14:20 | 2016-11-29 14:14:20 |
14 | 13ee163d-b5fb-11e6-82f8-989096ac7070 | 2016-11-29 14:14:25 | 2016-11-29 14:14:25 |
15 | 16e8f939-b5fb-11e6-82f8-989096ac7070 | 2016-11-29 14:14:30 | 2016-11-29 14:14:30 |
3、关于定时器时间设置
(1)执行一次,格式如下:
AT 'YYYY-MM-DD HH:MM.SS'/CURRENT_TIMESTAMP { + INTERVAL 1 [HOUR|MONTH|WEEK|DAY|MINUTE|...] }
(2)创建后一直定时执行,格式如下:
EVERY 1 [HOUR|MONTH|WEEK|DAY|MINUTE|...]
(3)指定开始时间、结束时间和执行周期,格式如下:
EVERY 1 [HOUR|MONTH|WEEK|DAY|MINUTE|...] STARTS CURRENT_TIMESTAMP/'YYYY-MM-DD HH:MM.SS' { + INTERVAL 1[HOUR|MONTH|WEEK|DAY|MINUTE|...] } ENDS CURRENT_TIMESTAMP/'YYYY-MM-DD HH:MM.SS' { + INTERVAL 1 [HOUR|MONTH|WEEK|DAY|MINUTE|...] }
4、参考资料
[1] MySQL官网手册
http://dev.mysql.com/doc/refman/5.6/en/create-event.html
[2] mysql创建定时任务
http://blog.csdn.net/mer1234567/article/details/7514855
发表评论
-
MySQL中Update的执行效率测试及验证
2016-12-06 16:22 67991、引言 某日,在讨论解决生产环境的问题时,一同事问说增加条件 ... -
用Java实现N*N的标准数独及对角线数独解题
2016-10-11 11:25 34931、引言 前一段时间迷 ... -
一道小学数学竞赛题:到底有几个三角形?
2016-09-28 20:09 1622近日,在日本的Twitter上又发生了一起群撕事件,而诱因竟是 ... -
在Spring项目中实现动态创建数据库
2017-06-21 16:31 51621、问题描述 在使用Sprin ... -
改进现有架构支持HTTPS服务
2016-06-23 16:57 01、引言 nginx使用ssl模块配置HTTPS支持 ht ... -
CentOS下从源码安装Asterisk实战
2016-05-20 20:23 35860、引言 在研究WebRTC服 ... -
EasyUI学习(1)- 入门
2015-12-14 17:20 00、引言 前段时间,在项目开发过程中使用了EasyUI的部分组 ... -
JS实现的3级联动例子
2015-06-17 23:10 1349朋友项目需要实现3级联动,需要JS实现的,网上找的例子有些复杂 ... -
JSBuilder2介绍及应用范例
2014-08-27 17:58 01、引言 Web项目开发过程中,使用到多个第三方的插件,同时, ... -
mysql 分段统计数据
2014-06-16 11:13 0《mysql 分段统计数据》 参考地址 http://gree ... -
实现CSS样式文件中图标的可视化
2014-06-26 14:39 4937关键词: CSS,EasyUI ... -
jquery选择器学习范例
2014-04-22 20:54 0http://www.w3school.com.cn/jque ... -
在CentOS上安装第三方软件库EPEL
2014-04-10 14:43 35139Extra Packages for Enterprise L ... -
通过webrtc2sip实现web客户端sipML5与SIP客户端Jtisi对通
2014-01-13 19:53 00、引言 在研究WebRTC服 ... -
NAT与NAT穿越学习总结
2013-12-23 19:19 204401、引言网络地址转换 ... -
完全清除Desktop_1.ini和Desktop_2.ini
2013-12-06 17:21 71481、引言 Windows7工作机进入系统就会弹出“deskto ... -
CentOS下搭建Asterisk+SIPml5实战
2013-11-14 14:53 00、引言 在研究SIPml5信令处理时,需要搭建环境SIPml ... -
CentOS下编译webrtc2sip实战
2013-11-13 10:39 151850、引言 在研究WebRTC服 ... -
在CentOS 5.5 x64上安装git客户端
2013-11-06 14:29 2062在CentOS 5.5 x64上安装git客户端,在网上找了好 ... -
Java实现RTP流转发服务器
2013-10-24 17:36 00、引言 在做多方视频会议系统时,需要有代理服务器来转发视频平 ...
相关推荐
创建表 创建存储过程 创建mysql的定时器event 启动定时器 停止定时器 查看表
定时清空数据库中表3天以前的数据的快捷操作,Windows脚本
mysql练手项目, mysql 项目实战
软件开发实战:PHP+MySQL开发实战
高性能mysql设计实战高性能mysql设计实战高性能mysql设计实战高性能mysql设计实战
MySQL OCP 实战视频 12-13
包含45讲全部文档,及作者的MYSQL心路历程,对mysql深入学习很有帮助,不需花费太多时间就可以掌握mysql核心原理,推荐给大家
从零开始带你成为MySQL实战优化高手
MySQL实战完整版资源含PDF,MP3,HTML,总共包含45章内容,适合需要提升MySQL技能的开发者,或者进行MySQL运维的同学。 压缩包内是百度网盘链接,丁奇的作品。
├─新版MySQL DBA综合实战班 第01天 │ 0_MySQL高级DBA公开课视频.avi │ 1_数据库通用知识介绍.avi │ 2_MySQL8常规安装.avi │ 3_MySQL8非常规安装.avi │ 4_MySQL8常见客户端和启动相关参数.avi │ ├─新版...
基于SSH2+Maven+EasyUI+MySQL技术实战开发易买网电子商务交易平台4
MySQL数据库实战第01课-什么是数据库学习方法介绍.avi MySQL数据库实战第02课-各种数据库的比较和关系型数据库的介绍.avi MySQL数据库实战第03课-服务器端运行通信原理图,avi MySQL数据库实战第04课-游戏服务器端...
《MySQL数据库应用实战教程》—课程教案(教学过程设计).pdf《MySQL数据库应用实战教程》—课程教案(教学过程设计).pdf《MySQL数据库应用实战教程》—课程教案(教学过程设计).pdf《MySQL数据库应用实战教程》—课程...
是百度网盘的链接
从 0 开始带你成为MySQL实战优化高手
创建测试表 代码如下: CREATE TABLE t ( v VARCHAR(100) NOT NULL ) ENGINE INNODB DEFAULT CHARSET=utf8;... 要使定时起作用 MySQL的常量GLOBAL event_scheduler必须为on或者是1 — 查看是否开启定时器 SHOW VAR
quartz定时器mysql的脚本,如果需要定时器持久化到数据库,可以使用
05-VIP-Mysql索引优化实战二.pdf