mysql 資料庫Event定時任務使用詳解(Navicat 及直接SQL語句建立)
阿新 • • 發佈:2019-01-07
一、使用Navicat建立Event
1、建立一個儲存過程讓定時任務Event呼叫:
開啟Navicat查詢介面:
在上述儲存過程中將自定義的sql語句填寫到BEGIN與END之間。
2、檢視並開啟event_scheduler排程事件:
再上圖查詢視窗執行檢視:
show variables like '%sche%';
注:如果event_scheduler值為OFF則使用set global event_scheduler =1;開啟。
3、建立Event排程任務:
儲存完畢,則在1中定義的儲存過程scheduler_sync()將會被每隔10秒執行一次!
二、使用純SQL語句建立定時任務Event。
1、進入到mysql ,並開啟event_schduler:
2、進入wishstack建立儲存過程(本次測試資料庫為wishstack):
上述綠色內容請填入相應的儲存過程邏輯程式碼!!!
3、測試當前儲存過程是否正確(沒有報錯則說明儲存過程建立成功):
4、建立Event事件:
5、對於Event的常用操作:
檢視:SHOW EVENTS;
開啟事件:
ALTER EVENT My_Sync_EventON COMPLETION PRESERVE ENABLE;
關閉事件: ALTER EVENTMy_Sync_EventON COMPLETION PRESERVE DISABLE;
刪除事件:DROP EVENT IF EXISTS my_scheduler_event; 也可以在linux下用指令碼實現: #//usr/bin/sh
mysql -uroot -p123456 -e "source ./monitor_screen.sql"
mysql -uroot -p123456 -e "source ./monitor_screen_sync.sql"
set global event_scheduler =1; show variables like '%event%'; |
CREATE PROCEDURE sync_date_2_monitor()
BEGIN
/*-- 下述加入自定義的mysql處理邏輯 --*/
/*-- ---------------------------- |
CREATE EVENT `My_Sync_Event` /*-- Event事件名稱 --*/ ON SCHEDULE EVERY 10 SECOND /*--每隔10秒排程一次--*/ ON COMPLETION PRESERVE /*--當本次event到期了,event會被disable,但是該event還是會存在--*/ ENABLE /*--開啟Event排程--*/ DO CALL scheduler_sync(); /*--排程任務呼叫上述建立的儲存過程,週期執行任務--*/ |
關閉事件: ALTER EVENTMy_Sync_EventON COMPLETION PRESERVE DISABLE;
刪除事件:DROP EVENT IF EXISTS my_scheduler_event; 也可以在linux下用指令碼實現: #//usr/bin/sh
mysql -uroot -p123456 -e "source ./monitor_screen.sql"
mysql -uroot -p123456 -e "source ./monitor_screen_sync.sql"