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

This commit is contained in:
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 {
// wait all workflows done.
poller.Wait()
// received the shutdown signal
<-ctx.Done()
log.Infoln("update runner status to offline")
_, err := cli.UpdateRunner(

View file

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