MySQL 事件調度器示例演示html
咱們你們都知道MySQL 事件調度器是在 MySQL 5.1 中新生的一個較爲特殊的功能,其能夠做爲定時任務調度器,來取代部分原先只能用操做系統任務調度器才能完成的定時功能。望如下的文章會給你提供更全面的知識。spa
1、概述操作系統
事件調度器是在 MySQL 5.1 中新增的另外一個特點功能,能夠做爲定時任務調度器,取代部分原先只能用操做系統任務調度器才能完成的定時功>能。例如,Linux 中的 crontabe 只能精確到每分鐘執行一次,而 MySQL 事件調度器則能夠實現每秒鐘執行一個任務,這在一些對實時性要>求較高的環境下就很是實用了。線程
事件調度器是定時觸發執行的,在這個角度上也能夠稱做是"臨時的觸發器"。觸發器只是針對某個表產生的事件執行一些語句,而事件調度器則是在某一個(間隔)時間執行一些語句。事件是由一個特定的線程來管理的,也就是所謂的"事件調度器"。啓用事件調度器後,擁有 SUPER 權限的帳戶執行 SHOW PROCESSLIST 就能夠看到這個線程了。經過設定全局變量event_scheduler 的值便可動態的控制MySQL 事件調度器是否啓用。orm
4. rowhtm
如上,該線程的全部者是 event_scheduler。blog
2、MySQL 事件調度器的應用案例事件
本案例是利用 event scheduler 的特性,每秒鐘調用一次存儲過程,用於判斷 SLAVE 是否正常運行,若是發現 SLAVE 關閉了,忽略 0 次錯誤,而後從新啓動 SLAVE。crontab
首先建立存儲過程ssl
因爲存儲過程當中沒法調用相似 SHOW SLAVE STATUS 這樣的語句,所以沒法獲得確切的複製錯誤信息和錯誤代碼,不能進一步的處理 SLAVE 中止的各類狀況。
接着,建立任務
建立了一個任務,每 5秒鐘 執行一次,任務結束後依舊保留該任務,而不是刪除。固然了,在本例中的任務不會結束,除非將它手動禁止了。
若是在運行中想要臨時關閉一下某個任務,執行 ALTER EVENT 語句便可: