Skip to content
gojuukaze edited this page Jul 13, 2020 · 6 revisions

Init server

import "github.com/gojuukaze/YTask/v2"

ser := ytask.Server.NewServer(
		ytask.Config.Broker(&broker),
		ytask.Config.Backend(&backend),
		...
)

Server config

Config require default code other
Broker * ytask.Config.Broker
Backend nil ytask.Config.Backend
Debug FALSE ytask.Config.Debug
StatusExpires 1day ytask.Config.StatusExpires "task status expires in ex seconds, -1:forever"
ResultExpires 1day ytask.Config.ResultExpires "task result expires in ex seconds, -1:forever"
  • StatusExpires, ResultExpires is not valid for Mongo backend, 0 means no storage, > 0 means permanent storage

Add worker func

func addFunc(a,b int) (int, bool){
    return a+b, true
}

// group1 : group name is also the query name
// add : worker name 
// addFunc : worker func
ser.Add("group1","add",addFunc)

Run and shutdown

// group1 : run group name
// 3 : number of worker goroutine
ser.Run("group1",3)

quit := make(chan os.Signal, 1)
signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM)
<-quit
ser.Shutdown(context.Background())

v2.2+ can run multiple groups with the same server.

ser:=ytask.Server.NewServer(...)
ser.Run("g1",1)
ser.Run("g2",1)