查询源站时加互斥锁

This commit is contained in:
GoEdgeLab
2021-12-01 21:20:42 +08:00
parent c423a00f19
commit 8d94fe3ef5

View File

@@ -196,8 +196,9 @@ func (this *ReverseProxyConfig) AddBackupOrigin(origin *OriginConfig) {
// NextOrigin 取得下一个可用的后端服务 // NextOrigin 取得下一个可用的后端服务
func (this *ReverseProxyConfig) NextOrigin(call *shared.RequestCall) *OriginConfig { func (this *ReverseProxyConfig) NextOrigin(call *shared.RequestCall) *OriginConfig {
this.schedulingLocker.RLock() // 这里不能使用RLock/RUnlock因为在NextOrigin()方法中可能会对调度对象动态调整
defer this.schedulingLocker.RUnlock() this.schedulingLocker.Lock()
defer this.schedulingLocker.Unlock()
if len(this.schedulingGroupMap) == 0 { if len(this.schedulingGroupMap) == 0 {
return nil return nil