in runtime/core/protocol/grpc/consumer/message_request.go [212:248]
func (w *WebhookRequest) getURLs() []string {
var (
urls []string
currentIDC = config.GlobalConfig().Common.IDC
)
w.IDCWebhookURLs.Range(func(key, value any) bool {
idc := key.(string)
vc := value.(*set.Set)
if idc == currentIDC {
for iter := vc.Begin(); iter.IsValid(); iter.Next() {
urls = append(urls, iter.Value().(string))
}
}
return true
})
if len(urls) == 0 {
for iter := w.AllURLs.Begin(); iter.IsValid(); iter.Next() {
urls = append(urls, iter.Value().(string))
}
}
if len(urls) == 0 {
log.Warnf("no handler for submitter")
return []string{}
}
switch w.subscriptionMode {
case pb.Subscription_SubscriptionItem_CLUSTERING:
return []string{urls[(w.RetryTimes+w.startIdx)%len(urls)]}
case pb.Subscription_SubscriptionItem_BROADCASTING:
return urls
default:
log.Warnf("invalid Subscription Mode, no message returning back to subscriber")
return []string{}
}
}