package task

import (
	"context"
	"time"
)

const max_resource = 10 // to multi use node resource

type GlobalLimit struct {
	kc K8sClient
}

func NewGlobalLimit(kc K8sClient) *GlobalLimit {
	return &GlobalLimit{
		kc: kc,
	}
}

func (gl *GlobalLimit) Touch(ctx context.Context) bool {
	for {
		select {
		case <-ctx.Done():
			return false
		default:
			if len(gl.kc.ListJob(improtJoblabel)) < max_resource {
				return true
			}
		}
		time.Sleep(time.Second)
	}
}
