Golang Cron

Golang Cron
Crontab eller cron for kort er et ekstremt nyttig verktøy som finnes i Unix-lignende operativsystemer. Det lar deg planlegge kommandoer eller oppgaver som skal kjøres på et bestemt tidspunkt. Vanligvis er Cron veldig nyttig når du utfører repeterende oppgaver som sikkerhetskopiering, sletting av filer, samler logger, automatisert systemvedlikehold og mer.

En planlagt oppgave, også kjent som en Cron -jobb, bruker veldig tidsformater for å bestemme når du skal løpe. For eksempel kan du lage en enkel cronjob som kjører når systemet starter på nytt.

For å lære mer om hvordan du bruker Crontab -verktøyet, sjekk denne opplæringen. I denne guiden vil vi imidlertid diskutere hvordan vi kan implementere Cron -oppgaver ved hjelp av GO -språket.

Golang Cron -pakke

For å opprette og kjøre CRON -oppgaver ved hjelp av Golang, må vi installere og importere Go Cron -pakken.

Begynn med å opprette en fungerende katalog for å lagre Golang -koden din.

Mkdir Crons
CD Crons

Kjør deretter kommandoen nedenfor for å installere pakken:

Gå GitHub.com/robfig/cron/[email protected]

Når du er installert, oppretter du en GO -fil for å lagre koden

berør Main.gå

Åpne hoveden.Gå fil med tekstredigereren din og importer pakken ved å bruke linjen vist nedenfor:

Importer "github.com/robfig/cron/v3 "

Golang Lag Cron -objekt

Det første trinnet er å lage et Cron -objekt ved hjelp av Cron.Ny () -metode. Du kan deretter bruke dette objektet administrere og planlegge oppgaver.

Cron: = Cron.Ny()

Ovennevnte skal returnere en ny Cron Job Runner med den definerte tidssonen. Hvis ingen tidssone er spesifisert, vil funksjonen bruke den lokale tidssonen.

Golang legger til func

Neste trinn er å ringe AddFunc -metoden på Cron -objektet. Dette lar oss legge til en tid til jobbsjefen. Funksjonssyntaksen er som vist:

func (c *cron) addFunc (Spec String, cmd func ()) feil

Det tar varigheten som den spesifiserte funksjonen kjøres. Du kan sette denne verdien til når som helst.Parseduration () Format. For å angi en funksjon for å kjøre hvert minutt, kan vi for eksempel spesifisere parameteren som: @Aly 1m.

Den andre parameteren er funksjonen som skal utføres.

Et eksempelkode er som vist nedenfor:

pakkehoved
import (
"FMT"
"Github.com/robfig/cron/v3 "
)
FUNCMAIN ()
Cron: = Cron.Ny()
Cron.AddFunc ("@hver 1m", func ()
fmt.Println ("Hei hvert minutt!")
)

I dette eksemplet definerer vi en funksjon som skriver ut “Hei hvert minutt”, hvert minutt.

Neste trinn er å starte Cron Scheduler. For dette kan vi bruke Cron.Start () Metode. Funksjonen vil ta planleggeren og kjøre den i sin egen rutine.

Cron.Start()
tid.Sov (tid.Minutt * 5)

Ovennevnte kode starter CRON -planleggeren ved hjelp av start () -metoden. Vi inkluderer også tiden.Sleep () Metode med en parameter på 5 minutter. Dette er fordi start () -metodene kjører i sin egen rutine for sløyfedeteksjon. Søvnmetoden forhindrer at GO -rutinen kommer ut.

Hvis vi kjører ovennevnte kode, bør vi få en utdata som:

$ go run main.gå
Hei hvert minutt!
Hei hvert minutt!
Hei hvert minutt!
.. .

Golang -uttrykksformater

Du kan bruke forskjellige ekspresjonsformater for å definere et sett med tider og varigheter som en oppgave vil kjøre.

Cron -pakken støtter følgende uttrykk:

  1. En stjerne viser uttrykket samsvarer med alle verdiene på feltet.
  2. En fremover skråstrek beskriver økningen av områder.
  3. Komma skiller en liste over elementer.
  4. Bindestrek definerer et sett med områder.

Du kan også bruke de forhåndsdefinerte formatene som vist:

Lukking

Dette var en introduksjonsopplæring om å lage og planlegge oppgaver ved hjelp av Cron på GO -språket. Sjekk dokumentene for mer.