本篇文章小編給大家分享一下mysql實現設置定時任務方法,小編覺得挺不錯的,現在分享給大家供大家參考,有需要的小伙伴們可以來看看。
1.首先檢查是否開啟了定時任務
查看event是否開啟 :
SHOW VARIABLES LIKE '%event_sche%';
java設置定時任務一小時執行一次?將事件計劃開啟 :
SET GLOBAL event_scheduler = 1;
將事件計劃關閉 :
SET GLOBAL event_scheduler = 0;
關閉事件任務 :
php和mysql關系、ALTER EVENT eventName ON COMPLETION PRESERVE DISABLE;
開啟事件任務 :
ALTER EVENT eventName ON COMPLETION PRESERVE ENABLE;
查看事件任務 :
SHOW EVENTS ;
mysql常用api,2.創建一個存儲過程
DELIMITER //
DROP PROCEDURE IF EXISTS p_test//
CREATE PROCEDURE p_test()
BEGIN
mysql行級鎖、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
mysql排他鎖、ON SCHEDULE EVERY 10 second STARTS TIMESTAMP '2015-08-08 01:00:00'
ON COMPLETION PRESERVE
DO
BEGIN
CALL p_test();
mysql列轉行。END//
備注:在event事件中:ON SCHEDULE 計劃任務,有兩種設定計劃任務的方式:
1. AT 時間戳,用來完成單次的計劃任務。
2. EVERY 時間(單位)的數量時間單位[STARTS 時間戳] [ENDS時間戳],用來完成重復的計劃任務。
在兩種計劃任務中,時間戳可以是任意的TIMESTAMP 和DATETIME 數據類型,時間戳需要大于當前時間。
mysql mvcc。在重復的計劃任務中,時間(單位)的數量可以是任意非空(Not Null)的整數式,時間單位是關鍵詞:YEAR,MONTH,DAY,HOUR,MINUTE
或者SECOND。
提示:其他的時間單位也是合法的如:QUARTER,
WEEK, YEAR_MONTH,DAY_HOUR,DAY_MINUTE,DAY_SECOND,HOUR_MINUTE,HOUR_SECOND,
MINUTE_SECOND,不建議使用這些不標準的時間單位。
mysql。[ON COMPLETION [NOT] PRESERVE]
ON
COMPLETION參數表示"當這個事件不會再發生的時候",即當單次計劃任務執行完畢后或當重復性的計劃任務執行到了ENDS階段。而PRESERVE的作用是使事件在執行完畢后不會被Drop掉,建議使用該參數,以便于查看EVENT具體信息。
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态