mirror of https://code.forgejo.org/forgejo/runner
chore(runner): wait workflow done before shutdown the service
parent
cbd21b8ec5
commit
d1114da299
|
@ -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(
|
||||
|
|
|
@ -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) {
|
||||
|
|
Loading…
Reference in New Issue