Sobes.tech
Junior — Middle

Ինչպե՞ս կարող ենք իրականացնել առաջադրանքների կատարմանը՝ առանց տեղադրված իրադարձությունների կամ առաջադրանքների պլանավորողի օգտագործման։

sobes.tech AI

Պատասխան AI-ից

Եթե ներսի պլանավորիչը (օրինակ՝ cron կամ ներսի ժամացույցներ) հնարավոր չէ օգտագործել, առաջադրանքների կատարմանը կարելի է իրականացնել Go-ում goroutine-ների և ալիքների միջոցով:

Օրինակ, կարող եք ստեղծել անսահման ցիկլ առանձին goroutine-ում, որը կսպասի որոշ ժամանակ և ձեռքով կմեկնարկի առաջադրանքը:

package main

import (
    "fmt"
    "time"
)

func առաջադրանք() {
    fmt.Println("Արագացման առաջադրանք", time.Now())
}

func main() {
    go func() {
        for {
            առաջադրանք()
            time.Sleep(1 * time.Hour) // սպասում միջեւ կատարումների
        }
    }()

    select {} // արգելափակում է main-ը, որպեսզի ծրագիրը չավարտվի
}

Այս կերպ, դուք կարող եք ինքնուրույն կառավարել ժամանակացույցը, առանց ներսի պլանավորիչների օգտագործման։