chore(runner): wait workflow done before shutdown the service

pull/2/head
Bo-Yi Wu 2022-11-11 13:51:00 +08:00 committed by Jason Song
parent cbd21b8ec5
commit d1114da299
2 changed files with 8 additions and 4 deletions

View File

@ -138,6 +138,9 @@ func runDaemon(ctx context.Context, envFile string) func(cmd *cobra.Command, arg
}) })
g.Go(func() error { g.Go(func() error {
// wait all workflows done.
poller.Wait()
// received the shutdown signal
<-ctx.Done() <-ctx.Done()
log.Infoln("update runner status to offline") log.Infoln("update runner status to offline")
_, err := cli.UpdateRunner( _, err := cli.UpdateRunner(

View File

@ -17,10 +17,7 @@ const (
errorRetryTimeSleepSecs = 30 errorRetryTimeSleepSecs = 30
) )
var ( var ErrDataLock = errors.New("Data Lock Error")
ErrDataLock = errors.New("Data Lock Error")
defaultLabels = []string{"self-hosted"}
)
func New(cli client.Client, dispatch func(context.Context, *runnerv1.Task) error) *Poller { func New(cli client.Client, dispatch func(context.Context, *runnerv1.Task) error) *Poller {
return &Poller{ return &Poller{
@ -39,6 +36,10 @@ type Poller struct {
errorRetryCounter int errorRetryCounter int
} }
func (p *Poller) Wait() {
p.routineGroup.Wait()
}
func (p *Poller) Poll(ctx context.Context, n int) error { func (p *Poller) Poll(ctx context.Context, n int) error {
for i := 0; i < n; i++ { for i := 0; i < n; i++ {
func(i int) { func(i int) {