Azure 服务总线,如何一次接收一条消息?
Azure Service Bus , receive one message at a time HOW?
有人可以帮忙修改此代码以一次只接收一条消息吗?
Private Sub Button_SEND_Click(sender As Object, e As EventArgs) Handles Button_SEND.Click
Dim client As QueueClient = QueueClient.CreateFromConnectionString(My.Settings.connString, My.Settings.queueName)
Dim message As New BrokeredMessage(TextBox_M2SEND.Text.Trim)
client.Send(message)
client = Nothing : message = Nothing
End Sub
' reading the message
Private Sub Button_READ_Click(sender As Object, e As EventArgs) Handles Button_READ.Click
Dim client As QueueClient = QueueClient.CreateFromConnectionString(My.Settings.connString, My.Settings.queueName)
Dim options As New OnMessageOptions()
options.AutoComplete = False
'options.AutoRenewTimeout = TimeSpan.FromMinutes(1)
client.OnMessage(Function(message)
Try
' Process message from subscription.
Console.WriteLine(vbLf & "**High Messages**")
Console.WriteLine("Body: " + message.GetBody(Of String)())
Console.WriteLine("MessageID: " + message.MessageId)
' Console.WriteLine("Message Number: " + message.Properties("MessageNumber"))
' Remove message from subscription.
message.Complete()
Catch generatedExceptionName As Exception
' Indicates a problem, unlock message in subscription.
message.Abandon()
End Try
End Function, options)
client = Nothing : options = Nothing
End Sub
我可以存储多条消息,但是当我执行 Button_Read 时,它会提取所有消息。
我如何一次只拉一个?
谢谢。
亚历克斯
只需调用 client.Receive()
方法即可拉取一条消息。
有人可以帮忙修改此代码以一次只接收一条消息吗?
Private Sub Button_SEND_Click(sender As Object, e As EventArgs) Handles Button_SEND.Click
Dim client As QueueClient = QueueClient.CreateFromConnectionString(My.Settings.connString, My.Settings.queueName)
Dim message As New BrokeredMessage(TextBox_M2SEND.Text.Trim)
client.Send(message)
client = Nothing : message = Nothing
End Sub
' reading the message
Private Sub Button_READ_Click(sender As Object, e As EventArgs) Handles Button_READ.Click
Dim client As QueueClient = QueueClient.CreateFromConnectionString(My.Settings.connString, My.Settings.queueName)
Dim options As New OnMessageOptions()
options.AutoComplete = False
'options.AutoRenewTimeout = TimeSpan.FromMinutes(1)
client.OnMessage(Function(message)
Try
' Process message from subscription.
Console.WriteLine(vbLf & "**High Messages**")
Console.WriteLine("Body: " + message.GetBody(Of String)())
Console.WriteLine("MessageID: " + message.MessageId)
' Console.WriteLine("Message Number: " + message.Properties("MessageNumber"))
' Remove message from subscription.
message.Complete()
Catch generatedExceptionName As Exception
' Indicates a problem, unlock message in subscription.
message.Abandon()
End Try
End Function, options)
client = Nothing : options = Nothing
End Sub
我可以存储多条消息,但是当我执行 Button_Read 时,它会提取所有消息。 我如何一次只拉一个?
谢谢。 亚历克斯
只需调用 client.Receive()
方法即可拉取一条消息。