本文實例講述了MySQL實現設置定時任務的方法。分享給大家供大家參考,具體如下:
創新互聯公司服務項目包括點軍網站建設、點軍網站制作、點軍網頁制作以及點軍網絡營銷策劃等。多年來,我們專注于互聯網行業,利用自身積累的技術優勢、行業經驗、深度合作伙伴關系等,向廣大中小型企業、政府機構等提供互聯網行業的解決方案,點軍網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到點軍省份的部分城市,未來相信會繼續擴大服務區域并繼續獲得客戶的支持與信任!
今天遇到了個需要每天定時執行的任務,在mysql數據庫里面提供了這樣的功能,正好整理下分享出來。
1.首先檢查是否開啟了定時任務
查看event是否開啟 :
SHOW VARIABLES LIKE '%event_sche%';
將事件計劃開啟 :
SET GLOBAL event_scheduler = 1;
將事件計劃關閉 :
SET GLOBAL event_scheduler = 0;
關閉事件任務 :
ALTER EVENT eventName ON COMPLETION PRESERVE DISABLE;
開啟事件任務 :
ALTER EVENT eventName ON COMPLETION PRESERVE ENABLE;
查看事件任務 :
SHOW EVENTS ;
2.創建一個存儲過程
DELIMITER // DROP PROCEDURE IF EXISTS p_test// CREATE PROCEDURE p_test() BEGIN INSERT INTO test(name, create_time) values('testName', now()); END//
3.設置定時任務調用這個存儲過程(從2015.8.8 1點每十秒執行一次)
DROP EVENT IF EXISTS e_test// CREATE EVENT e_test ON SCHEDULE EVERY 10 second STARTS TIMESTAMP '2015-08-08 01:00:00' ON COMPLETION PRESERVE DO BEGIN CALL p_test(); END//
備注:在event事件中:ON SCHEDULE 計劃任務,有兩種設定計劃任務的方式:
1. AT 時間戳,用來完成單次的計劃任務。
2. EVERY 時間(單位)的數量時間單位[STARTS 時間戳] [ENDS時間戳],用來完成重復的計劃任務。
在兩種計劃任務中,時間戳可以是任意的TIMESTAMP 和DATETIME 數據類型,時間戳需要大于當前時間。
在重復的計劃任務中,時間(單位)的數量可以是任意非空(Not Null)的整數式,時間單位是關鍵詞:YEAR,MONTH,DAY,HOUR,MINUTE 或者SECOND。
提示:其他的時間單位也是合法的如:QUARTER, WEEK, YEAR_MONTH,DAY_HOUR,DAY_MINUTE,DAY_SECOND,HOUR_MINUTE,HOUR_SECOND, MINUTE_SECOND,不建議使用這些不標準的時間單位。
[ON COMPLETION [NOT] PRESERVE]
ON COMPLETION參數表示"當這個事件不會再發生的時候",即當單次計劃任務執行完畢后或當重復性的計劃任務執行到了ENDS階段。而PRESERVE的作用是使事件在執行完畢后不會被Drop掉,建議使用該參數,以便于查看EVENT具體信息。
更多關于MySQL相關內容感興趣的讀者可查看本站專題:《MySQL查詢技巧大全》、《MySQL事務操作技巧匯總》、《MySQL存儲過程技巧大全》、《MySQL數據庫鎖相關技巧匯總》及《MySQL常用函數大匯總》
希望本文所述對大家MySQL數據庫計有所幫助。
本文題目:mysql實現設置定時任務的方法分析
網站網址:http://m.kartarina.com/article14/pphpde.html
成都網站建設公司_創新互聯,為您提供面包屑導航、移動網站建設、網頁設計公司、Google、虛擬主機、網站內鏈
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯