一、首先檢查是否開啓了定時任務express
查看event是否開啓 : SHOW VARIABLES
LIKE
'%event_sche%'
;
spa
將事件計劃開啓 :
SET
GLOBAL
event_scheduler = 1;
code
將事件計劃關閉 :
SET
GLOBAL
event_scheduler = 0;
事件
關閉事件任務 :
ALTER
EVENT eventName
ON
COMPLETION PRESERVE DISABLE;
it
開啓事件任務 :
ALTER
EVENT eventName
ON
COMPLETION PRESERVE ENABLE;
event
查看事件任務 : SHOW EVENTS ;
test
查看存儲過程 :SHOW PROCEDURE STATUS ;date
二、建立存儲過程定時任務
delimiter // DROP PROCEDURE IF EXISTS test_update_express// CREATE PROCEDURE test_update_express() BEGIN UPDATE ts_zy_recharge SET express_state=3 WHERE express_state = 1 LIMIT 1; END//
三、設置定時任務調用這個存儲過程(從2018-06-22 14:12:00點每30秒執行一次)數據類型
delimiter // DROP EVENT IF EXISTS test_update_express// CREATE EVENT test_update_express ON SCHEDULE EVERY 60 second STARTS TIMESTAMP '2018-06-22 14:12:00' ON COMPLETION PRESERVE DO BEGIN call test_update_express(); 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具體信息。