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

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

新聞中心

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

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

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

一、概述

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

事件調(diào)度器是定時(shí)觸發(fā)執(zhí)行的,在這個(gè)角度上也可以稱作是"臨時(shí)的觸發(fā)器"。觸發(fā)器只是針對(duì)某個(gè)表產(chǎn)生的事件執(zhí)行一些語(yǔ)句,而事件調(diào)度器則是在某一個(gè)(間隔)時(shí)間執(zhí)行一些語(yǔ)句。事件是由一個(gè)特定的線程來(lái)管理的,也就是所謂的"事件調(diào)度器"。啟用事件調(diào)度器后,擁有 SUPER 權(quán)限的賬戶執(zhí)行 SHOW PROCESSLIST 就可以看到這個(gè)線程了。通過(guò)設(shè)定全局變量event_scheduler 的值即可動(dòng)態(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)度器的應(yīng)用案例

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

首先創(chuàng)建存儲(chǔ)過(guò)程

 
 
 
  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 ;

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

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

 
 
 
  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)建了一個(gè)任務(wù),每 5秒鐘 執(zhí)行一次,任務(wù)結(jié)束后依舊保留該任務(wù),而不是刪除。當(dāng)然了,在本例中的任務(wù)不會(huì)結(jié)束,除非將它手動(dòng)禁止了。

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

 
 
 
  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)容就是對(duì)MySQL 事件調(diào)度器(Event Scheduler) 的介紹,望你能有所收獲。


標(biāo)題名稱:MySQL事件調(diào)度器示例演示
路徑分享:http://www.5511xx.com/article/dpphcgs.html