吴峰的博客

一:EVENT

event既“时间触发器”,与triggers的事件触发不同,event类似与linux crontab计划任务,用于时间触发。通过单独或调用存储过程使用,在某一特定的时间点,触发相关的SQL语句或存储过程。

对于每隔一段时间就有固定需求的操作,如创建表,删除数据等操作,可以使用event来处理。

例如:使用event来执行存储过程,定时统计数据,插入到一张统计数据表中

CREATE DEFINER=`root`@`localhost` EVENT `event_timer_toaddreport` ON SCHEDULE EVERY 1 DAY STARTS '2017-07-21 02:00:00' ON COMPLETION PRESERVE ENABLE DO CALL sp_addreport()

//注释:以上时间触发器,从2017年7月21日凌晨2点开始,每天的凌晨2点都会执行 Call sp_addreport()这个存储过程,可在这个存储过程中编写添加,编辑,删除等SQL语句。

二:Crontab

Crontab它是一个linux下的定时执行工具。键入 crontab -e 命令来编辑的 crontab。也可以找到目录,利用vim /etc/crontab命令进行编辑然后保存,和crontab -e相同。当对 crontab 所做的改变被保存后,该 crontab 文件就会根据该用户名被保存,并写入文件 /var/spool/cron/username 中。cron 守护进程每分钟都检查 /etc/crontab 文件、etc/cron.d/ 目录、以及 /var/spool/cron 目录中的改变。如果发现了改变,它们就会被载入内存。这样,当某个 crontab 文件改变后就不必重新启动守护进程了。cron是一个常驻服务,它提供计时器的功能,让用户在特定的时间得以执行预设的指令或程序。只要用户会编辑计时器的配置文件,就可以使 用计时器的功能。

例如:

#GM数据获取

#获取游戏玩家新增用户数

0 */1 * * * php /home/wwwroot/branch/mahjong_nl/cli.php/cli.php cli/cli/getAddUserEveryHours

#获取代理新增用户数

0 7 * * * php /home/wwwroot/branch/mahjong_nl/cli.php/cli.php cli/cli/getAddAgentEveryDay

定时执行php文件,进行数据分析统计。

基本格式 :

分钟   小时   日   月   星期   命令

*        *      *    *     *       *

第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列 表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令

记住几个特殊符号的含义: 
“*”代表取值范围内的数字, 
“/”代表”每”, 
“-”代表从某个数字到某个数字, 
“,”分开几个离散的数字



Tags:
评论 (0)
    说点什么吧... (取消回复)

    正在加载验证码......

    请先拖动验证码到相应位置

Copyright 吴峰的博客 © 2014-2016 管理员邮箱:phpwufeng@163.com   统计:   ICP备案:鲁ICP备16004939号-1