Golang Cron

Golang Cron
CRONTAB oder CRON TRECK ist ein äußerst nützliches Dienstprogramm, das in Unix-ähnlichen Betriebssystemen vorkommt. Sie können Befehle oder Aufgaben planen, die zu einem bestimmten Zeitpunkt ausgeführt werden sollen. In der Regel ist Cron sehr nützlich, wenn sie sich wiederholende Aufgaben wie Backups, Löschen von Dateien, Sammeln von Protokollen, automatisierte Systemwartung und mehr ausführen.

Eine geplante Aufgabe, auch als Cron -Job bezeichnet. Sie können beispielsweise einen einfachen Cronjob erstellen, der beim Neustart des Systems ausgeführt wird.

Weitere Informationen zur Verwendung des CRONTAB -Dienstprogramms finden Sie in diesem Tutorial. In diesem Leitfaden werden wir jedoch diskutieren, wie wir Cron -Aufgaben mithilfe der Go -Sprache implementieren können.

Golang Cron -Paket

Um Cron -Aufgaben mit Golang zu erstellen und auszuführen, müssen wir das GO -Cron -Paket installieren und importieren.

Erstellen Sie zunächst ein Arbeitsverzeichnis, um Ihren Golang -Code zu speichern.

Mkdir Crons
CD -Kerne

Führen Sie als nächstes den Befehl unten aus, um das Paket zu installieren:

Holen Sie sich Github.com/robfig/cron/[email protected]

Erstellen Sie nach der Installation eine Go -Datei, um Ihren Code zu speichern

Main berühren.gehen

Öffne die Haupt.GO -Datei mit Ihrem Texteditor und importieren Sie das Paket mit der unten gezeigten Zeile:

importieren "Github.com/robfig/cron/v3 "

Golang erstellen Cron -Objekt

Der erste Schritt besteht darin, ein Cron -Objekt mit dem Cron zu erstellen.New () Methode. Sie können dann dieses Objekt verwalten und planen Aufgaben.

Cron: = Cron.Neu()

Das oben obene sollte einen neuen Cron -Jobläufer mit der definierten Zeitzone zurückgeben. Wenn keine Zeitzone angegeben ist, verwendet die Funktion die lokale Zeitzone.

Golang Func hinzufügen

Der nächste Schritt besteht darin, die Addfunc -Methode auf dem Cron -Objekt aufzurufen. Auf diese Weise können wir dem Job Manager eine Zeit hinzufügen. Die Funktionssyntax ist wie gezeigt:

func (c *cron) addfunc (Spec String, cmd func ()) Fehler

Es dauert die Dauer, unter der die angegebene Funktion ausgeführt wird. Sie können diesen Wert jederzeit festlegen.ParseDuration () Format. Um beispielsweise eine Funktion für jede Minute festzulegen, können wir den Parameter als: @Every 1m angeben.

Der zweite Parameter ist die Funktion, die ausgeführt werden muss.

Ein Beispielcode ist wie unten gezeigt:

Paket Main
importieren (
"fmt"
"Github.com/robfig/cron/v3 "
)
funcmain ()
Cron: = Cron.Neu()
Cron.Addfunc ("@jeder 1m", func ()
fmt.Println ("Hi jede Minute!"))
)

In diesem Beispiel definieren wir eine Funktion, die "hi jede Minute", jede Minute druckt.

Der nächste Schritt besteht darin, den Cron Scheduler zu starten. Dafür können wir den Cron benutzen.Start () Methode. Die Funktion nimmt den Scheduler auf und führt ihn in seiner eigenen Go-Routine aus.

Cron.Start()
Zeit.Schlafenszeit.Minute * 5)

Der obige Code startet den Cron -Scheduler mithilfe der Start () -Methode. Wir schließen auch die Zeit ein.Sleep () Methode mit einem Parameter von 5 Minuten. Dies liegt daran. Die Schlafmethode verhindert, dass die Go -Routine ausgeht.

Wenn wir den oben genannten Code ausführen, sollten wir eine Ausgabe erhalten wie bei:

$ go run main.gehen
Hallo jede Minute!
Hallo jede Minute!
Hallo jede Minute!
… .

Golang -Expressionsformate

Sie können verschiedene Expressionsformate verwenden, um eine Reihe von Zeiten und Dauern zu definieren, unter denen eine Aufgabe ausgeführt wird.

Das Cron -Paket unterstützt die folgenden Ausdrücke:

  1. Ein Sternchen zeigt, dass der Ausdruck alle Werte des Feldes entspricht.
  2. Ein Vorwärtsstrahl beschreibt das Inkrement der Bereiche.
  3. Comma trennt eine Liste von Elementen.
  4. Bindestrich definiert eine Reihe von Bereichen.

Sie können auch die vordefinierten Formate wie gezeigt verwenden:

Schließen

Dies war ein Einführungs -Tutorial zum Erstellen und Planung von Aufgaben mit Cron in der Go -Sprache. Überprüfen Sie die Dokumente für weitere.