- 浏览: 536173 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
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 69031、引言 某日,在讨论解决生产环境的问题时,一同事问说增加条件 ... -
用Java实现N*N的标准数独及对角线数独解题
2016-10-11 11:25 35481、引言 前一段时间迷 ... -
一道小学数学竞赛题:到底有几个三角形?
2016-09-28 20:09 1719近日,在日本的Twitter上又发生了一起群撕事件,而诱因竟是 ... -
在Spring项目中实现动态创建数据库
2017-06-21 16:31 52701、问题描述 在使用Sprin ... -
改进现有架构支持HTTPS服务
2016-06-23 16:57 01、引言 nginx使用ssl模块配置HTTPS支持 ht ... -
CentOS下从源码安装Asterisk实战
2016-05-20 20:23 37160、引言 在研究WebRTC服 ... -
EasyUI学习(1)- 入门
2015-12-14 17:20 00、引言 前段时间,在项目开发过程中使用了EasyUI的部分组 ... -
JS实现的3级联动例子
2015-06-17 23:10 1389朋友项目需要实现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 5062关键词: CSS,EasyUI ... -
jquery选择器学习范例
2014-04-22 20:54 0http://www.w3school.com.cn/jque ... -
在CentOS上安装第三方软件库EPEL
2014-04-10 14:43 35207Extra Packages for Enterprise L ... -
通过webrtc2sip实现web客户端sipML5与SIP客户端Jtisi对通
2014-01-13 19:53 00、引言 在研究WebRTC服 ... -
NAT与NAT穿越学习总结
2013-12-23 19:19 205131、引言网络地址转换 ... -
完全清除Desktop_1.ini和Desktop_2.ini
2013-12-06 17:21 72021、引言 Windows7工作机进入系统就会弹出“deskto ... -
CentOS下搭建Asterisk+SIPml5实战
2013-11-14 14:53 00、引言 在研究SIPml5信令处理时,需要搭建环境SIPml ... -
CentOS下编译webrtc2sip实战
2013-11-13 10:39 152970、引言 在研究WebRTC服 ... -
在CentOS 5.5 x64上安装git客户端
2013-11-06 14:29 2110在CentOS 5.5 x64上安装git客户端,在网上找了好 ... -
Java实现RTP流转发服务器
2013-10-24 17:36 00、引言 在做多方视频会议系统时,需要有代理服务器来转发视频平 ...
相关推荐
第08天-进阶-goroute详解、定时器与单元测试 第09天-高级-网络协议TCP、Redis与聊天室 第10天-高级-Web开发与Mysql数据库 第11天-高级-项目实战-日志收集系统kafka库实战 第12天-高级-etcd、contex、kafka消费实例、...
11. **MySQL管理器**:一个用于管理MySQL数据库的应用,可能使用JDBC进行数据库操作,涉及SQL语句的执行、结果集处理和GUI设计。 12. **仿QQ游戏大厅**:这是一个复杂项目,可能包括聊天室、游戏匹配、好友系统等...
EasyHadoop集群部署入门文档2目录21....29#使用crontab 新增每日运行任务定时器297. 使用FineReport 数据展现数据29#安装FineReport,使用注册码!29#使用FineReport,快速展现数据报表。29#FineReport 的问题和局限29
首先,交通灯系统是一个典型的控制逻辑应用,它涉及到Java中的多线程和定时器技术。在交通灯系统的设计中,我们需要模拟红绿灯的切换逻辑,这通常会用到Thread类或实现Runnable接口来创建并控制多个线程。同时,使用...
首先,Java基础部分是学习的起点,涵盖了异常处理、集合类的使用、输入输出(IO)技术以及如何利用JDBC操作MySQL数据库。异常处理是Java编程中的重要组成部分,它允许程序优雅地处理错误情况,而集合类如ArrayList和...
IO技术的学习包括文件读写和流的处理,而JDBC则讲解了如何与MySQL数据库进行交互,以及ORM(对象关系映射)框架的封装思路,如Hibernate或MyBatis,这有助于简化数据库操作。此外,Junit单元测试的使用是保证代码...
- 连接MySQL数据库是Flowable运行的必要步骤,可以存储流程实例、任务等信息。 - 接口分析有助于理解Flowable如何与外部系统交互,包括部署流程、启动流程实例等操作。 3. **Flowable-UI** - Flowable-UI是其...
- 应用定时器控制游戏速度,实现动画效果。 - 使用Qt的绘图引擎绘制游戏界面。 3. **音乐播放器** - 利用Qt Media模块实现音频文件的播放、暂停、停止等功能。 - 设计简洁美观的用户界面,提高用户体验。 - ...
│ │ │ └[思库教育]JS 第28集 window对象的定时器方法.avi │ │ ├ │ │ │ ├[思库教育]JS 第28集 作业_图片轮播1.avi │ │ │ └[思库教育]JS 第29集 作业_图片轮播2.avi │ │ ├ │ │ │ ├[思库教育]JS ...
【标题】"跟着《Python爬取疫情实战:Flask》所做的 web 项目"是一个基于Python编程语言和Flask框架开发的实战项目,旨在教授如何利用Python进行数据爬取并构建Web应用来展示疫情数据。该项目可能包括了从互联网上...
10. 定时器与随机数产生:教程展示了如何使用定时器进行周期性任务处理和如何生成随机数以增加程序的互动性。 11. Qt 2D绘图基础:文档包含了一系列关于2D绘图的教程,从绘制简单图形到更复杂的渐变填充、路径、...
springboot学习实战 全新内容 新增全新的springboot2的框架技术点(代码位于当前仓库的spring-boot2-study目录下) 基于springboot 2.0.6.RELEASE版本实现的代码演示集合,欢迎使用star / fork 新子项目列表 介绍...
同时,会讲解原子操作、锁机制、无锁消息队列以及各种定时器方案。 4. **中间件开发**:深入学习MySQL、Redis、Nginx和MongoDB等常用中间件,理解其工作原理和优化技巧,如MySQL的索引原理、事务处理、TiDB分布式...
- **DB**:Activiti支持多种数据库管理系统,如MySQL、Oracle等,用于存储流程实例和任务等相关数据。 #### 实战案例分析 以XML格式为例,下面是一个简单的流程定义示例: ```xml ``` 这个例子定义了...
* mysql 数据库及 sql 语法 * apache 服务器与集成开发工具 * PHP 链接数据库 * PHP 与 AJAX 交互 * 实战:留言板、登录、注册等 八、H5 基础项目内容 * 项目简介 * 项目功能演示 * 项目划分及框架 * 编写 HTML ...
STM32F407裸机开发:开发环境前提需要向ESP8266WIFI模块烧录带MQTT的SDK固件,控制部分有三个led、fan(PWM调节,定时器TIM控制)、beep,tem、hum(DHT11)在OLED显示屏(I2C)显示,并具有按键菜单,AT24C02(EEPROM...
**EJB 3.0 实战教程代码解析** 在Java企业级应用开发中,Enterprise JavaBeans(EJB)是核心组件之一,它提供了一种标准的、可移植的方式来实现业务逻辑和服务。EJB 3.0是其重要的版本,极大地简化了API,降低了...
项目实战:任务管理系统V1.0,可能包括以下关键组成部分: 1. 数据存储:任务数据通常会存储在数据库中,如SQLite或MySQL。Python中的sqlite3模块可以方便地与SQLite数据库进行交互,而pymysql或MySQLdb则用于连接...
- **定时器与计划任务**:利用定时器和计划任务机制实现周期性事件处理。 - **资源管理**:了解如何高效管理内存、文件等资源,提高系统稳定性。 #### 五、实战案例分析 - **Web服务器构建**:通过一个完整的Web...