我調用client.Send(brokeredMessage);
一次,但我多次收到消息。對於手柄隊列我使用此代碼Azure ServiceBus隊列。我多次收到相同的消息
private static void HandleQueue(string queueName, MessageHandler messageHandler)
{
// Create the queue if it does not exist already
string connectionString =
Configuration.GetConnectionString("Microsoft.ServiceBus.ConnectionString",false);
var namespaceManager =
NamespaceManager.CreateFromConnectionString(connectionString);
if (!namespaceManager.QueueExists(queueName))
{
namespaceManager.CreateQueue(queueName);
}
QueueClient client =
QueueClient.CreateFromConnectionString(connectionString, queueName);
while (true)
{
BrokeredMessage message = client.Receive();
if (message != null)
{
try
{
messageHandler(message);
// Remove message from queue
message.Complete();
}
catch (Exception)
{
// Indicate a problem, unlock message in queue
message.Abandon();
}
}
}
}
問題是,BrokeredMessage message = client.Receive();
被調用幾次,返回相同的消息,如果messageHandler(message);
執行需要很長時間。我該如何解決它?
5分鐘後,如果嘗試更新鎖,則表示鎖已過期消息! – Rusty
鎖定時間到期後我不能更新鎖嗎?例如5分鐘後如果嘗試更新鎖,則表示鎖定已過期! – Rusty
@Rusty:您需要更新鎖_before_過期。如果鎖在五分鐘內過期,請提前10秒更新。您可以重複更新。 –