func()

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{}
	}
}