Heim > Datenbank > MySQL-Tutorial > MySQL-Ereignisplaner Ausführliche Erklärung des Ereignisplaners

MySQL-Ereignisplaner Ausführliche Erklärung des Ereignisplaners

黄舟
Freigeben: 2016-12-16 11:12:10
Original
1353 Leute haben es durchsucht

Der Ereignisplaner ist eine weitere neue Funktion, die in MySQL 5.1 hinzugefügt wurde. Er kann als geplanter Aufgabenplaner verwendet werden und ersetzt einige der geplanten Funktionen, die nur vom Betriebssystem-Aufgabenplaner ausgeführt werden konnten. Beispielsweise kann Crontabe unter Linux nur einmal pro Minute ausgeführt werden, während der MySQL-Ereignisplaner eine Aufgabe pro Sekunde ausführen kann, was in einigen Umgebungen, die eine hohe Echtzeitleistung erfordern, sehr praktisch ist.


Der Event-Scheduler wird regelmäßig ausgelöst und ausgeführt. Aus dieser Perspektive kann man ihn auch als „temporären Trigger“ bezeichnen. Trigger führen nur einige Anweisungen für Ereignisse aus, die von einer bestimmten Tabelle generiert werden, während Ereignisplaner einige Anweisungen zu einem bestimmten Zeitpunkt (Intervall) ausführen. Ereignisse werden von einem bestimmten Thread verwaltet, dem sogenannten „Event Scheduler“. Nach der Aktivierung des Ereignisplaners kann ein Konto mit SUPER-Berechtigungen diesen Thread sehen, indem es SHOW PROCESSLIST ausführt. Durch Festlegen des Werts der globalen Variablen event_scheduler können Sie dynamisch steuern, ob der Ereignisplaner aktiviert ist.


(root:localhost:)test> SET GLOBAL event_scheduler = ON;(root:localhost:)test> ******* ********** 4. Zeile ***************************ID: 46147Benutzer : event_schedulerHost: localhostdb: NULLBefehl: DaemonZeit: 1Status: Warten auf leere WarteschlangeInfo: NULL


Wie oben ist der Eigentümer dieses Threads event_scheduler.


Anwendungsfall


Dieser Fall nutzt die Eigenschaften des Ereignisplaners, um jede Sekunde eine gespeicherte Prozedur aufzurufen, um festzustellen, ob der SLAVE normal läuft Der SLAVE wird geschlossen, 0 Fehler ignorieren und SLAVE neu starten.


Erstellen Sie zuerst die gespeicherte Prozedur


Trennzeichen //Erstellen Sie die Prozedur `Slave_Monitor`()beginSELECT VARIABLE_VALUE INTO @SLAVE_STATUS FROM information_schema.GLOBAL_STATUS WHERE VARIABLE_NAME='SLAVE_RUNNING';IF ( 'ON' != @SLAVE_STATUS) THENSET GLOBAL SQL_SLAVE_SKip_COUNTER=0;SLAVE START;END IF;end; //delimiter ;

Weil die gespeicherte Prozedur so etwas wie SHOW SLAVE STATUS nicht aufrufen kann Daher können die genauen Kopierfehlerinformationen und der Fehlercode nicht abgerufen werden und die verschiedenen Situationen, in denen SLAVE stoppt, können nicht weiter verarbeitet werden.


Als nächstes erstellen Sie die Aufgabe


EREIGNIS ERSTELLEN, WENN „Slave_Monitor“ NICHT EXISTIERT

PLANMÄSSIG ALLE 5 SEKUNDEN

NACH ABSCHLUSS PRESERVE

DO

CALL Slave_Monitor();


Erstellt eine Aufgabe und führt sie alle 5 Sekunden aus. Nach dem Ende der Aufgabe bleibt die Aufgabe weiterhin erhalten gelöscht. Natürlich wird die Aufgabe in diesem Beispiel nicht beendet, es sei denn, sie wird manuell deaktiviert.


Wenn Sie eine Aufgabe während des Betriebs vorübergehend schließen möchten, führen Sie die ALTER EVENT-Anweisung aus:


(root:localhost:)test> alter event `Slave_Monitor ` ON

COMPLETION PRESERVE DISABLE;

(root:localhost:)test> alter event `Slave_Monitor` ON

COMPLETION PRESERVE ENABLE;

Das ist alles. Für eine detaillierte Beschreibung Erläuterung des MySQL-Ereignisplaners Event Scheduler. Weitere verwandte Artikel finden Sie auf der chinesischen PHP-Website (m.sbmmt.com)!


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage