一: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列要运行的命令
记住几个特殊符号的含义:
“*”代表取值范围内的数字,
“/”代表”每”,
“-”代表从某个数字到某个数字,
“,”分开几个离散的数字
评论 (0)