Ich versuche, den Unterschied zwischen der Ackdeadline -Eigenschaft im Abonnement und der Ackdeadline -Eigenschaft auf dem Abonnenten zu verstehen. Es ist klar, dass die Ackdeadline im Abonnement der Zeitraum ist, nach dem das Abonnement die Nachricht an den Abonnenten weiterleitet. Der Mindestwert beträgt 10 Sekunden für das Abonnement. Ich verstehe die Semantik der Ackdeadline für den Abonnenten nicht. Zu Ihrer Information, mein Anwendungsfall beinhaltet das Erhalten der Nachricht und das Einlegen der Nachrichten auf ein Kafka-Thema. Es ist mir egal, ob ich nicht alle Nachrichten verarbeite. Ich muss die neuesten Nachrichten verarbeiten und weiß nicht, ob es sich um eine veraltete oder neueste Nachricht handelt, ohne zuerst die Nachrichten zu analysieren. Ich möchte die Ackdeadline nicht erhöhen und die Nachricht ignorieren/verwerfen, wenn mein Abonnent verzögert. Vielen Dank! Ich bin immer noch verwirrt, was der Wert auf jeden haben soll. Mein Abonnement hat die folgenden Einstellungen: < /p>
public static async Task CreateSubscription(string CmeProjectId, string Topic, SubscriptionName SubscriptionId)
{
SubscriberServiceApiClient subscriberService = await SubscriberServiceApiClient.CreateAsync();
TopicName topicName = TopicName.FromProjectTopic(CmeProjectId, Topic);
try
{
//Please read common subscription properties: https://cloud.google.com/pubsub/docs/subscription-properties
var subscriptionRequest = new Subscription
{
SubscriptionName = SubscriptionId,
TopicAsTopicName = topicName,
//How long are unacked messages stored. Default = 7 days, minimum = 10 minutes.
MessageRetentionDuration = new Duration
{
Seconds = (long)TimeSpan.FromMinutes(10).TotalSeconds
},
//How long do Subscriptions survive without any activity. Default value = 31 days, minimum value = 1 day
ExpirationPolicy = new ExpirationPolicy
{
Ttl = Duration.FromTimeSpan(TimeSpan.FromDays(1))
},
/*
Create a deadletter queue to discard messages if message was not ackd after 5 retries.
Do not attach a subscription to dead letter queue as we want to drop stale messages and not store them.
MaxDelivery attempts has a minimum value of 5.
*/
DeadLetterPolicy = new DeadLetterPolicy
{
MaxDeliveryAttempts = 5,
DeadLetterTopic = TopicName.FromProjectTopic(MAREX_PROJECT_ID, "dead-letter-topic").ToString()
},
//Process the message exactly once.
//Messages are not redelivered if message is acked or when message is outstanding (https://cloud.google.com/pubsub/docs/exactly-once-delivery)
EnableExactlyOnceDelivery = true
};
await subscriberService.CreateSubscriptionAsync(subscriptionRequest);
}
catch (RpcException e) when (e.Status.StatusCode == StatusCode.AlreadyExists)
{
Console.WriteLine("Subscription already exists!");
}
return subscriberService;
}
< /code>
Der Abonnent ist Folgendes: < /p>
public static async Task CreateSubscriber(SubscriptionName subscriptionId)
{
SubscriberClient subscriber = await new SubscriberClientBuilder
{
SubscriptionName = subscriptionId,
Settings = new SubscriberClient.Settings
{
//Lease time before which a message must either be acknowledged or have its lease extended.
AckDeadline = TimeSpan.FromSeconds(10),
//Number of outstanding messages after which subscription won't send any messages.
//Total byte count of all outstanding messages that won't fill up available memory.
FlowControlSettings = new FlowControlSettings(maxOutstandingElementCount: 50000, maxOutstandingByteCount: 50000 * 560)
}
}.BuildAsync();
return subscriber;
}
Ich versuche, den Unterschied zwischen der Ackdeadline -Eigenschaft im Abonnement und der Ackdeadline -Eigenschaft auf dem Abonnenten zu verstehen. Es ist klar, dass die Ackdeadline im Abonnement der Zeitraum ist, nach dem das Abonnement die Nachricht an den Abonnenten weiterleitet. Der Mindestwert beträgt 10 Sekunden für das Abonnement. Ich verstehe die Semantik der Ackdeadline für den Abonnenten nicht. Zu Ihrer Information, mein Anwendungsfall beinhaltet das Erhalten der Nachricht und das Einlegen der Nachrichten auf ein Kafka-Thema. Es ist mir egal, ob ich nicht alle Nachrichten verarbeite. Ich muss die neuesten Nachrichten verarbeiten und weiß nicht, ob es sich um eine veraltete oder neueste Nachricht handelt, ohne zuerst die Nachrichten zu analysieren. Ich möchte die Ackdeadline nicht erhöhen und die Nachricht ignorieren/verwerfen, wenn mein Abonnent verzögert. Vielen Dank! Ich bin immer noch verwirrt, was der Wert auf jeden haben soll. Mein Abonnement hat die folgenden Einstellungen: < /p> [code]public static async Task CreateSubscription(string CmeProjectId, string Topic, SubscriptionName SubscriptionId) { SubscriberServiceApiClient subscriberService = await SubscriberServiceApiClient.CreateAsync(); TopicName topicName = TopicName.FromProjectTopic(CmeProjectId, Topic); try { //Please read common subscription properties: https://cloud.google.com/pubsub/docs/subscription-properties var subscriptionRequest = new Subscription { SubscriptionName = SubscriptionId, TopicAsTopicName = topicName, //How long are unacked messages stored. Default = 7 days, minimum = 10 minutes. MessageRetentionDuration = new Duration { Seconds = (long)TimeSpan.FromMinutes(10).TotalSeconds }, //How long do Subscriptions survive without any activity. Default value = 31 days, minimum value = 1 day ExpirationPolicy = new ExpirationPolicy { Ttl = Duration.FromTimeSpan(TimeSpan.FromDays(1)) }, /* Create a deadletter queue to discard messages if message was not ackd after 5 retries. Do not attach a subscription to dead letter queue as we want to drop stale messages and not store them. MaxDelivery attempts has a minimum value of 5. */ DeadLetterPolicy = new DeadLetterPolicy { MaxDeliveryAttempts = 5, DeadLetterTopic = TopicName.FromProjectTopic(MAREX_PROJECT_ID, "dead-letter-topic").ToString() }, //Process the message exactly once. //Messages are not redelivered if message is acked or when message is outstanding (https://cloud.google.com/pubsub/docs/exactly-once-delivery) EnableExactlyOnceDelivery = true }; await subscriberService.CreateSubscriptionAsync(subscriptionRequest); } catch (RpcException e) when (e.Status.StatusCode == StatusCode.AlreadyExists) { Console.WriteLine("Subscription already exists!"); }
return subscriberService; } < /code> Der Abonnent ist Folgendes: < /p> public static async Task CreateSubscriber(SubscriptionName subscriptionId) { SubscriberClient subscriber = await new SubscriberClientBuilder { SubscriptionName = subscriptionId, Settings = new SubscriberClient.Settings { //Lease time before which a message must either be acknowledged or have its lease extended. AckDeadline = TimeSpan.FromSeconds(10),
//Number of outstanding messages after which subscription won't send any messages. //Total byte count of all outstanding messages that won't fill up available memory. FlowControlSettings = new FlowControlSettings(maxOutstandingElementCount: 50000, maxOutstandingByteCount: 50000 * 560) } }.BuildAsync(); return subscriber; } [/code]
Dies wurde zuvor gefragt, aber ich habe keine Antworten gefunden, die für meinen Anwendungsfall funktionieren.
Ich habe ein vereinfachtes Spielzeugbeispiel erstellt, um mein Problem zu erklären....
Ich habe eine WordPress -Website und verwendet Yobazar -Thema, es hatte eine Fußzeile, bevor ich in den Abschnitt Fußzeile Blöcke hergestellt wurde. und Anzeige auf gesamte Website . Bitte führen Sie...
Ich möchte eine Liste mit allen möglichen AppService-Hostingplan-Konfigurationseinstellungen meines Azure-Abonnements (Standort, Stufe, Größe usw.) erhalten. Möglicherweise über SKUs.