【发布时间】:2019-01-25 18:19:17
【问题描述】:
我尝试使用 Go 从 azure 服务总线队列中提取消息,但在运行代码时出现错误。这是我的代码。
func Example_queue_receive() {
ctx, cancel :=context.WithTimeout(context.Background(),10*time.Second)
defer cancel()
connectionString :="Endpoint=sb://{my_service_name}.servicebus.windows.net/;SharedAccessKeyName = RootManageSharedAccessKey;SharedAccessKey={my_shared_access_key_value}"
// Create a client to communicate with a Service Bus Namespace.
ns, err := servicebus.NewNamespace(servicebus.NamespaceWithConnectionString(connectionString))
if err != nil {
fmt.Println(err)
}
// Create a client to communicate with the queue.
q, err := ns.NewQueue("MyQueueName")
if err != nil {
fmt.Println("FATAL: ", err)
}
err = q.ReceiveOne(ctx, servicebus.HandlerFunc(func(ctx context.Context, message *servicebus.Message) servicebus.DispositionAction {
fmt.Println(string(message.Data))
return message.Complete()
}))
if err != nil {
fmt.Println("FATAL: ", err)
}
}
这是错误:
链接分离,原因:*Error{Condition: amqp:not-found}
【问题讨论】:
-
与错误无关,但您的代码似乎有些错误,HandlerFunc 应该返回
error而不是servicebus.DispositionAction。
标签: azure go azure-servicebus-queues