介绍
小编给大家分享一下Linux下实现Mysql定时任务的案例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
假设前提:每天晚上10点到早5点上,每10分钟定时执行存储过程。
<强>实现方式:强>
第一种是利用Mysql本身实现,制定事件定时任务,可以借助Navicat Mysql或其他数据库开发工具去做;
第二种实现方式是利用Linux的定时任务,这个是利用Linux系统自带任务管理工具实现的。
<强>一、Mysql中事件定时任务的相关命令,强>
1。查看事件是否启用:
SELECT @@event_scheduler;, 或 SHOW VARIABLES  LIKE & # 39;事件% & # 39;;
<强> 2。开启定时任务:强>
set GLOBAL event_scheduler =, 1,, 或 SET GLOBAL event_scheduler =,,
<强> 3。建立定时任务:强>
DROP EVENT IF EXISTS JOB_ALARM; CREATE EVENT  JOB_ALARM ,提醒SCHEDULE EVERY 10分钟 做 ,开始 如果才能(date_format(当前时间()& # 39;% h # 39;)在22日,| |,date_format(当前时间()& # 39;% h # 39;) & lt; 5), ,,CALL PRO_ALARM (); 最终获得才能;如果; 之前结束><>强4。建立存储过程:强>
DROP PROCEDURE IF EXISTS PRO_ALARM;, CREATE PROCEDURE  PRO_ALARM (), ,BEGIN DECLARE 才能;userId  VARCHAR (32),, #这才能个用于处理游标到达最后一行的情况, DECLARE 才能s INT  DEFAULT 0;, #声才能明游标cursor_name (cursor_name是个多行结果集), DECLARE 才能cursor_data CURSOR  FOR ,,SELECT tmp.USER_ID ,才能得到(, ,,,,,,SELECT ,,,,,,,e.USER_ID,, ,,,,,,,马克斯(e.TIME_GMT), TIME_GMT ,,,,,,得到EVENTS e ,,,,,,GROUP BY e.USER_ID ,,,,,,HAVING 马克斯(e.TIME_GMT), & lt;, UNIX_TIMESTAMP(),安康;60,*,30, ,,,,,,,,,以及MAX (e.TIME_GMT),祝辞,UNIX_TIMESTAMP(),安康;60,*,60,*,24),tmp ,,,INNER JOIN EVENTS t 提醒tmp.USER_ID =, t.USER_ID ,,,,,,,,,,,,,,,,,,以及tmp.TIME_GMT =, t.TIME_GMT ,,WHERE TYPE_ID  !=, & # 39; 34001 & # 39;,, #才能设置一个终止标记, DECLARE 才能CONTINUE HANDLER  FOR SQLSTATE & # 39; 02000 & # 39;, SET s =, 1,, cursor_data; OPEN 才能; #才能获取游标当前指针的记录,读取一行数据并传给变量,b FETCH 才能;cursor_data ,,INTO 标识; #才能开始循环,判断是否游标已经到达了最后作为循环条件, WHILE 才能s & lt;祝辞,1,DO ,,INSERT INTO  EVENTS_NOTIFICATION VALUES (NULL,, SYSDATE (),, UNIX_TIMESTAMP (SYSDATE ()),, ,,,,,,,,,,,,,,,,,,,,,,,,,UNIX_TIMESTAMP (SYSDATE ()),, & # 39; 00000 & # 39;,, userId,, & # 39; 1 & # 39;,, & # 39; 0 & # 39;),, ,,#读取下一行的数据, ,,FETCH cursor_data ,,INTO userId, ,,最终获得;而; #才能关闭游标, cursor_data; CLOSE 才能; ,结束;<强>二,利用linux的定时任务,强>
linux定时任务基本命令:
查看定时任务:crontab - l
编辑定时任务:crontab - e,,,,,,,*/10月22日至23日,0 - 5 * * *,,mysql - u用户名- p密码- e“使用db_name;叫PRO_ALARM ();“
,,,,,,或者把使用db_name;调用PRO_ALARM();存到sql脚本中,编辑定时任务如下:
,,,,,,*/10月22日至23日,0 - 5 * * *,,mysql - u用户名- p密码& lt;/应用程序/Job_mysql。sql
以上是“Linux下实现Mysql定时任务的案例”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
Linux下实现Mysql定时任务的案例