Skip to content

🌈 🌈 🌈 golang worker controller, manage all worker start, stop, ...

Notifications You must be signed in to change notification settings

rfyiamcool/worker_control

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 

Repository files navigation

worker_control

worker_control manage go worker in a project, and put worker to group, support start, stop method.

Usage

import (
    workerControl "github.com/rfyiamcool/worker_control"
)

type TimerWorker struct {}

func (t *TimerWorker) Start(){
}

func (t *TimerWorker) Stop(){
}

func (t *TimerWorker) GetProcessName() string {
    return "timer"
}

func main(){
    wm := workerControl.NewWorkerControl()
    timer := TimerWorker{}
    wm.AddWorkerList(timer)

    wm.Start()
    wm.MakeRecvSignal()
    wm.Stop()

    exitCode := wm.WaitTimeout(30) // after 30s, force exit
    switch exitCode {
    case workerControl.ForceTimeoutExitCode:
        tool.Log.Errorf("timeout force exit, timeout: %v", forceExitTime)

    case workerControl.GracefulExitCode:
        tool.Log.Info("graceful exit")
    }
}


About

🌈 🌈 🌈 golang worker controller, manage all worker start, stop, ...

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages