Annahme: Die gespeicherte Prozedur wird täglich von 22:00 bis 5:00 Uhr alle 10 Minuten ausgeführt. Durchführung: Die erste besteht darin, MySQL selbst zum Formulieren von Ereignis-Timing-Aufgaben zu verwenden, was mithilfe von Navicat für MySQL oder anderen Datenbankentwicklungstools durchgeführt werden kann. 1. Verwandte Befehle für Event-Timing-Aufgaben in Mysql, 1. Prüfen Sie, ob das Ereignis aktiviert ist: Wählen Sie @@event_scheduler; oder VARIABLEN WIE „event%“ ANZEIGEN; 2. Starten Sie die geplante Aufgabe: setze GLOBAL event_scheduler = 1; oder SETZEN SIE GLOBAL event_scheduler = ON; 3. Erstellen Sie eine geplante Aufgabe: EREIGNIS LÖSCHEN, WENN JOB_ALARM VORHANDEN IST; EREIGNIS JOB_ALARM ERSTELLEN PÜNKTLICH ALLE 10 MINUTE TUN BEGINNEN wenn(Datumsformat(aktuelle_Zeit(),'%H')>22 || Datumsformat(aktuelle_Zeit(),'%H')<5) DANN CALL PRO_ALARM(); ENDE, WENN; ENDE 4. Erstellen Sie eine gespeicherte Prozedur: DROP-PROZEDUR, WENN PRO_ALARM EXISTIERT; PROZEDUR ERSTELLEN PRO_ALARM() BEGINNEN DECLARE Benutzer-ID VARCHAR(32); #Dies wird verwendet, um die Situation zu behandeln, in der der Cursor die letzte Zeile erreicht. DECLARE s INT DEFAULT 0; #Cursor Cursorname deklarieren (Cursorname ist ein mehrzeiliger Ergebnissatz) DECLARE cursor_data CURSOR FÜR Wählen Sie tmp.USER_ID AUS ( WÄHLEN e.USER_ID, MAX(e.ZEIT_GMT) ZEIT_GMT VON EVENTS GRUPPE NACH e.USER_ID HAVING MAX(e.TIME_GMT) < UNIX_TIMESTAMP() - 60 * 30 UND MAX(e.TIME_GMT) > UNIX_TIMESTAMP() - 60 * 60 * 24) tmp INNER JOIN EVENTS t ON tmp.USER_ID = t.USER_ID UND tmp.TIME_GMT = t.TIME_GMT WO TYPE_ID != '34001'; #Setzen Sie ein Abschlusszeichen DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET s = 1; ÖFFNEN Sie Cursordaten; #Holen Sie sich den Datensatz des aktuellen Cursorzeigers, lesen Sie eine Datenzeile und übergeben Sie sie an die Variablen a, b FETCH Cursordaten INTO Benutzer-ID; #Starten Sie die Schleife und bestimmen Sie, ob der Cursor das Ende als Schleifenbedingung erreicht hat WHILE s <> 1 DO INSERT INTO EVENTS_NOTIFICATION VALUES (NULL, SYSDATE(), UNIX_TIMESTAMP(SYSDATE()), UNIX_TIMESTAMP(SYSDATE()), '00000', Benutzer-ID, '1', '0'); #Lesen Sie die nächste Datenzeile FETCH cursor_data INTO Benutzer-ID; ENDE WÄHREND; #Cursor schließen CLOSE cursor_data; ENDE; 2. Verwenden Sie die geplanten Aufgaben von Linux. Grundlegende Befehle für geplante Linux-Tasks: Geplante Aufgaben anzeigen: crontab -l */10 22-23,0-5 * * * mysql -u Benutzername -p Passwort -e "use db_name;CALL PRO_ALARM();" Oder speichern Sie use db_name;CALL PRO_ALARM(); in das SQL-Skript und bearbeiten Sie die geplante Aufgabe wie folgt: */10 22-23,0-5 * * * mysql -u Benutzername -p Passwort < /application/Job_mysql.sql Zusammenfassen Das Obige ist meine Einführung in die Implementierung geplanter MySQL-Aufgaben unter Linux. Ich hoffe, es wird Ihnen hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und ich werde Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken! Das könnte Sie auch interessieren:
|
<<: Erklären Sie TypeScript-zugeordnete Typen und eine bessere wörtliche Typinferenz.
>>: Detaillierte Erläuterung der Tomcat-Konfigurations- und Optimierungslösungen
In diesem Artikel werden hauptsächlich zwei Arten...
Methode 1: Bitte fügen Sie den folgenden Code nach...
Inhaltsverzeichnis Master-Master-Synchronisierung...
Vorwort Es ist ein Klischee. Hier werde ich über ...
Ist Leistung wirklich wichtig? Leistung ist wicht...
Sie wissen, dass der Browser ohne diese Option bei...
Lassen Sie mich mit einer Frage beginnen: Wenn Si...
Inhaltsverzeichnis Vorwort Rendern setTable-Kompo...
Die MySQL-Verbindung muss zuerst über Init-Connec...
Inhaltsverzeichnis Prinzip Quellcodeanalyse Deleg...
Inhaltsverzeichnis 1. Einleitung 2. Erster Eindru...
CSS: 1. <link type="text/css" href=&q...
Frage Der Tomcat-Container wurde erfolgreich mit ...
1. MySQL-Selbstverbindung MySQL muss beim Abfrage...
[mysql] Ersetzungsverwendung (Teil des Inhalts ei...