程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql定時器

mysql定時器

編輯:MySQL綜合教程

mysql定時器


mysql定時器既是mysql的事件,在實際開發中,我們有時候需要定時去執行一些操作,大部分人通過ScheduledExecutorService類去創建定時,這種如果遇到大數據的更新的時候,運行速度比較忙,這時候我們可以考慮使用mysql定時器去執行SQL腳本文件。

要使用mysql定時器。

首先必須啟動調度器“event_scheduler”。

 

查看當前是否已開啟事件計劃(調度器)有3種方法:

1) SHOW VARIABLES LIKE 'event_scheduler';

2) SELECT @@event_scheduler;

3) SHOW PROCESSLIST;

開啟事件計劃(調度器)開關有4種方法:

1) SET GLOBAL event_scheduler = 1;

2) SET @@global.event_scheduler = 1;

3) SET GLOBAL event_scheduler = ON;

4) SET @@global.event_scheduler = ON;

其次是創建定時器事件,可以通過sql創建,也可以安裝Navicat Premium(mysql客戶端)創建。

1)通過sql創建定時器事件:

create event if not exists eventJob
on schedule every 2 second STARTS '2015-07-14 00:00:00'
on completion PRESERVE

ENABLE
do call mypro();

上述sql腳本中“eventJob ”為定時器事件名稱,“mypro”為mysql函數或者存儲過程。sql腳本表示從 '2015-07-14 00:00:00'開始,每2秒鐘執行mypro()函數一次。當然也可以設置結束時間。

2) 通過客戶端創建定時器事件:

\

如圖中所示,call關鍵字後是需要執行的函數或者存儲過程;狀態表示定時器事件的狀態,是否啟用,enable表示啟用,disable表示不啟用,可以手動設置也可以通過sql來進行設置; on completion設置為“PRESERVE”。

\

“計劃”中標簽中,主要是設置定時器的頻率和開始結束時間。AT表示,從當前mysql數據庫時間開始(這個時間是從啟動器啟用開始,即當狀態為“ENABLE”時),根據一定頻率的執行;EVERY是自定義開始時間和結束時間;相對來書EVERY比較靈活,使用方便。

最後,當然是設置定時器事件的狀態。

在上一步中,我們無論是sql創建還是客戶端創建都可以設置狀態,但是當我們沒有設置狀態或者說關閉定時器事件的時候,就需要執行sql

ALTER EVENT eventJob ON COMPLETION PRESERVE ENABLE; ---- 開啟事件
ALTER EVENT eventJob ON COMPLETION PRESERVE DISABLE; ---- 關閉事件

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved