日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
MySQL事件調(diào)度器示例演示

我們大家都知道MySQL 事件調(diào)度器是在 MySQL 5.1 中新生的一個較為特殊的功能,其可以作為定時任務調(diào)度器,來取代部分原先只能用操作系統(tǒng)任務調(diào)度器才能完成的定時功能。望以下的文章會給你提供更全面的知識。

成都創(chuàng)新互聯(lián)憑借在網(wǎng)站建設、網(wǎng)站推廣領(lǐng)域領(lǐng)先的技術(shù)能力和多年的行業(yè)經(jīng)驗,為客戶提供超值的營銷型網(wǎng)站建設服務,我們始終認為:好的營銷型網(wǎng)站就是好的業(yè)務員。我們已成功為企業(yè)單位、個人等客戶提供了網(wǎng)站制作、成都做網(wǎng)站服務,以良好的商業(yè)信譽,完善的服務及深厚的技術(shù)力量處于同行領(lǐng)先地位。

一、概述

事件調(diào)度器是在 MySQL 5.1 中新增的另一個特色功能,可以作為定時任務調(diào)度器,取代部分原先只能用操作系統(tǒng)任務調(diào)度器才能完成的定時功>能。例如,Linux 中的 crontabe 只能精確到每分鐘執(zhí)行一次,而 MySQL 事件調(diào)度器則可以實現(xiàn)每秒鐘執(zhí)行一個任務,這在一些對實時性要>求較高的環(huán)境下就非常實用了。

事件調(diào)度器是定時觸發(fā)執(zhí)行的,在這個角度上也可以稱作是"臨時的觸發(fā)器"。觸發(fā)器只是針對某個表產(chǎn)生的事件執(zhí)行一些語句,而事件調(diào)度器則是在某一個(間隔)時間執(zhí)行一些語句。事件是由一個特定的線程來管理的,也就是所謂的"事件調(diào)度器"。啟用事件調(diào)度器后,擁有 SUPER 權(quán)限的賬戶執(zhí)行 SHOW PROCESSLIST 就可以看到這個線程了。通過設定全局變量event_scheduler 的值即可動態(tài)的控制MySQL 事件調(diào)度器是否啟用。

 
 
 
  1. (root:localhost:)test> SET GLOBAL event_scheduler = ON; 
  2. (root:localhost:)test> show processlist\G 

4. row

 
 
 
  1. Id: 46147 
  2. User: event_scheduler 
  3. Host: localhost 
  4. db: NULL 
  5. Command: Daemon 
  6. Time: 1 
  7. State: Waiting on empty queue 
  8. Info: NULL

如上,該線程的所有者是 event_scheduler。

二、MySQL 事件調(diào)度器的應用案例

本案例是利用 event scheduler 的特性,每秒鐘調(diào)用一次存儲過程,用于判斷 SLAVE 是否正常運行,如果發(fā)現(xiàn) SLAVE 關(guān)閉了,忽略 0 次錯誤,然后重新啟動 SLAVE。

首先創(chuàng)建存儲過程

 
 
 
  1. delimiter // 
  2. create procedure `Slave_Monitor`() 
  3. begin
  4. SELECT VARIABLE_VALUE INTO @SLAVE_STATUS 
  5. FROM information_schema.GLOBAL_STATUS 
  6. WHERE VARIABLE_NAME='SLAVE_RUNNING';
  7. IF ('ON' != @SLAVE_STATUS) THEN 
  8. SET GLOBAL SQL_SLAVE_SKIP_COUNTER=0; 
  9. SLAVE START; 
  10. END IF;
  11. end; // 
  12. delimiter ;

由于存儲過程中無法調(diào)用類似 SHOW SLAVE STATUS 這樣的語句,因此無法得到確切的復制錯誤信息和錯誤代碼,不能進一步的處理 SLAVE 停止的各種情況。

接著,創(chuàng)建任務

 
 
 
  1. CREATE EVENT IF NOT EXISTS `Slave_Monitor` 
  2. ON SCHEDULE EVERY 5 SECOND 
  3. ON COMPLETION PRESERVE 
  4. DO 
  5. CALL Slave_Monitor();

創(chuàng)建了一個任務,每 5秒鐘 執(zhí)行一次,任務結(jié)束后依舊保留該任務,而不是刪除。當然了,在本例中的任務不會結(jié)束,除非將它手動禁止了。

如果在運行中想要臨時關(guān)閉一下某個任務,執(zhí)行 ALTER EVENT 語句即可:

 
 
 
  1. (root:localhost:)test> alter event `Slave_Monitor` ON 
  2. COMPLETION PRESERVE DISABLE; 
  3. (root:localhost:)test> alter event `Slave_Monitor` ON 
  4. COMPLETION PRESERVE ENABLE;

以上的相關(guān)內(nèi)容就是對MySQL 事件調(diào)度器(Event Scheduler) 的介紹,望你能有所收獲。


名稱欄目:MySQL事件調(diào)度器示例演示
文章分享:http://m.5511xx.com/article/dpphcgs.html