func (psc *PGStatusCache) Set(podGroupName string, pg Object) {
	psc.Lock()
	psc.PGStatusMap[podGroupName] = pg.(*PodGroupMatchStatus)
	psc.Unlock()
}
Set node status to the cache
package cache
import (
	"sync"
	gochache "github.com/patrickmn/go-cache"
	v12 "k8s.io/api/core/v1"
	v1 "github.com/tenstack/batch-scheduler/pkg/apis/podgroup/v1"
	"k8s.io/apimachinery/pkg/types"
)
type Cache interface {
	Get(string) Object
	Set(string, Object)
	Delete(string)
}
type Object interface {
}
var _ Cache = &PGStatusCache{}
var _ Object = &PodGroupMatchStatus{}
type PGStatusCache struct {
	sync.RWMutex
	PGStatusMap map[string]*PodGroupMatchStatus
}
type PodGroupMatchStatus struct {
	CountLock sync.RWMutex
	PodGroup  *v1.PodGroup
	MatchedPodNodes *gochache.Cache
	PodNameUIDs *gochache.Cache
	Failed map[string]string
	Succeed map[string]string
	Pod     *v12.Pod
	Scheduled bool
}
type PodNodePair struct {
	PodName string
	Node    string
}
func NewPGStatusCache() *PGStatusCache {
	return &PGStatusCache{
		PGStatusMap: map[string]*PodGroupMatchStatus{},
	}
}
func DeepCopy(pairs map[types.UID]*PodNodePair) map[types.UID]*PodNodePair {
	newPair := make(map[types.UID]*PodNodePair)
	for id, pair := range pairs {
		pairObj := *pair
		pairObjCopy := pairObj
		newPair[id] = &pairObjCopy
	}
	return newPair
}
func (psc *PGStatusCache) Get(podGroupName string) Object {
	psc.RLock()
	defer psc.RUnlock()
	pg, found := psc.PGStatusMap[podGroupName]
	if found == false {
		return nil
	}
	return pg
}