久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Linux下實現Mysql定時任務的案例

135次閱讀
沒有評論

共計 1908 個字符,預計需要花費 5 分鐘才能閱讀完成。

自動寫代碼機器人,免費開通

丸趣 TV 小編給大家分享一下 Linux 下實現 Mysql 定時任務的案例,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

假設前提:每天晚上 10 點到早上 5 點,每 10 分鐘定時執行存儲過程。

實現方式:

第一種是利用 Mysql 本身實現,制定 event 定時任務,可以借助 Navicat For Mysql 或其他數據庫開發工具去做;
第二種實現方式是利用 linux 的定時任務,這個是利用 Linux 系統自帶任務管理工具實現的。

一、Mysql 中 event 定時任務的相關命令,

1. 查看 event 是否啟用:

SELECT @@event_scheduler; 
SHOW VARIABLES LIKE  event%

2. 開啟定時任務:

set GLOBAL event_scheduler = 1; 
SET GLOBAL event_scheduler = ON;

3. 建立定時任務:

DROP EVENT IF EXISTS JOB_ALARM;
CREATE EVENT JOB_ALARM
 ON SCHEDULE EVERY 10 MINUTE
 BEGIN
 if(date_format(current_time(), %H ) 22 || date_format(current_time(), %H ) 5) THEN
 CALL PRO_ALARM();
 END IF;
END

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 
 FROM ( 
 SELECT 
 e.USER_ID, 
 MAX(e.TIME_GMT) TIME_GMT 
 FROM EVENTS e 
 GROUP BY e.USER_ID 
 HAVING MAX(e.TIME_GMT)   UNIX_TIMESTAMP() - 60 * 30 
 AND MAX(e.TIME_GMT)   UNIX_TIMESTAMP() - 60 * 60 * 24) tmp 
 INNER JOIN EVENTS t ON tmp.USER_ID = t.USER_ID 
 AND tmp.TIME_GMT = t.TIME_GMT 
 WHERE TYPE_ID !=  34001  
 # 設置一個終止標記  
 DECLARE CONTINUE HANDLER FOR SQLSTATE  02000  SET s = 1; 
 OPEN cursor_data; 
 # 獲取游標當前指針的記錄,讀取一行數據并傳給變量 a,b 
 FETCH cursor_data 
 INTO userId; 
 # 開始循環,判斷是否游標已經到達了最后作為循環條件  
 WHILE s   1 DO 
 INSERT INTO EVENTS_NOTIFICATION VALUES (NULL, SYSDATE(), UNIX_TIMESTAMP(SYSDATE()), 
 UNIX_TIMESTAMP(SYSDATE()),  00000 , userId,  1 ,  0  
 # 讀取下一行的數據  
 FETCH cursor_data 
 INTO userId; 
 END WHILE; 
 # 關閉游標  
 CLOSE cursor_data; 
 END;

二、利用 linux 的定時任務,

linux 定時任務基本命令:

查看定時任務:crontab -l
編輯定時任務:crontab -e

  */10 22-23,0-5 * * *  mysql - u 用戶名 - p 密碼 -e use db_name;CALL PRO_ALARM();

  或者把 use db_name;CALL PRO_ALARM(); 存到 sql 腳本中,編輯定時任務如下:

  */10 22-23,0-5 * * *  mysql - u 用戶名 - p 密碼 /application/Job_mysql.sql

以上是“Linux 下實現 Mysql 定時任務的案例”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注丸趣 TV 行業資訊頻道!

向 AI 問一下細節

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-04發表,共計1908字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 沁源县| 达日县| 元江| 庆城县| 青浦区| 武鸣县| 岚皋县| 额尔古纳市| 新昌县| 合肥市| 泰顺县| 读书| 长顺县| 许昌市| 鹿邑县| 昆山市| 阿勒泰市| 宁南县| 南阳市| 崇信县| 南雄市| 静海县| 青州市| 景洪市| 通化县| 清新县| 密云县| 灵璧县| 楚雄市| 久治县| 祁连县| 富蕴县| 呼图壁县| 科尔| 和政县| 赤水市| 临泉县| 金昌市| 县级市| 乌什县| 若尔盖县|