Skip to content

No need to call GetPartitionedTopicMetadata for old topics if user specifies DeadLetterTopic/RetryLetterTopic in options.DLQ #1458

@Kybxd

Description

@Kybxd

retryTopic := topicName + "-" + options.SubscriptionName + RetryTopicSuffix
dlqTopic := topicName + "-" + options.SubscriptionName + DlqTopicSuffix
oldRetryTopic := tn.Domain + "://" + tn.Namespace + "/" + options.SubscriptionName + RetryTopicSuffix
oldDlqTopic := tn.Domain + "://" + tn.Namespace + "/" + options.SubscriptionName + DlqTopicSuffix
if r, err := client.lookupService.GetPartitionedTopicMetadata(oldRetryTopic); err == nil &&
r != nil &&
r.Partitions > 0 {
retryTopic = oldRetryTopic
}
if r, err := client.lookupService.GetPartitionedTopicMetadata(oldDlqTopic); err == nil &&
r != nil &&
r.Partitions > 0 {
dlqTopic = oldDlqTopic
}
if options.DLQ == nil {
options.DLQ = &DLQPolicy{
MaxDeliveries: MaxReconsumeTimes,
DeadLetterTopic: dlqTopic,
RetryLetterTopic: retryTopic,
}
} else {
if options.DLQ.DeadLetterTopic == "" {
options.DLQ.DeadLetterTopic = dlqTopic
}
if options.DLQ.RetryLetterTopic == "" {
options.DLQ.RetryLetterTopic = retryTopic
}
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions