So implementieren Sie geplante MySQL-Aufgaben unter Linux

So implementieren Sie geplante MySQL-Aufgaben unter Linux

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.
Die zweite Implementierungsmethode besteht darin, die geplanten Aufgaben von Linux zu verwenden, die mithilfe des im Linux-System enthaltenen Aufgabenverwaltungstools implementiert werden.

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
Geplante Aufgaben bearbeiten: crontab -e

*/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:
  • So konfigurieren Sie geplante MySQL-Aufgaben (EVENT-Ereignisse) im Detail
  • Beispiele für die Implementierung und Verwendung von geplanten MySQL-Aufgaben
  • Analyse der Methode zum Einrichten geplanter Aufgaben in MySQL
  • Detaillierte Erläuterung der geplanten MySQL-Aufgaben (Ereignisereignisse)
  • So implementieren Sie geplante MySQL-Aufgaben zur Datensicherung unter Linux
  • Beispiel-Tutorial für geplante MySQL-Aufgaben
  • Analyse und Lösung der Gründe, warum geplante MySQL-Aufgaben nicht normal ausgeführt werden können

<<:  Erklären Sie TypeScript-zugeordnete Typen und eine bessere wörtliche Typinferenz.

>>:  Detaillierte Erläuterung der Tomcat-Konfigurations- und Optimierungslösungen

Artikel empfehlen

Erstellen Sie in 5 Minuten einen WebRTC-Videochat

Im vorherigen Artikel habe ich den detaillierten ...

Grafisches Tutorial zur kostenlosen Installationsversion von MySQL 5.7.21 winx64

Konfigurationsmethode für die kostenlose Installa...

Nginx: Ein Domänenname für den Zugriff auf mehrere Projekte – Methodenbeispiel

Hintergrund Kürzlich stieß ich bei der Bereitstel...

Eine kurze Analyse zum Festlegen des Anfangswerts des Linux-Roots

Ubuntu erlaubt standardmäßig keine Root-Anmeldung...

Beispielcode zum Erstellen eines minimierten Header-Effekts nur mit CSS

Zusammengeklappte Kopfzeilen sind eine großartige...

4 Möglichkeiten zum Anzeigen von Prozessen in LINUX (Zusammenfassung)

Ein Prozess ist ein Programmcode, der in der CPU ...

js zum Schreiben des Karusselleffekts

In diesem Artikel wird der spezifische Code von j...

Auszeichnungssprache - Anker

Zurück: Markup Language - Phrasenelemente Original...

Front-End-KI-Schnitttipps (Erfahrung)

Das AI-Bildschneiden muss mit PS koordiniert werd...

MySQL-Datenbank GTID realisiert Master-Slave-Replikation (super praktisch)

1. Maria-Quelle hinzufügen vi /etc/yum.repos.d/Ma...

Neue Features in MySQL 8: Unsichtbare Indizes

Hintergrund Indizes sind ein zweischneidiges Schw...

So verwenden Sie das JQuery-Editor-Plugin tinyMCE

Ändern Sie die vereinfachte Dateigröße und laden ...

Tutorial zum Erstellen des File-Sharing-Dienstes Samba unter CentOS6.5

Samba-Dienste: Dieser Inhalt dient als Referenz f...