Golang library for Azure Service Bus -- https://aka.ms/azsb
Перейти к файлу
Joel Hendrix 296ac2ca91
Add recovery mechanism to rpcClient (#206)
* Add recovery mechanism to rpcClient

RPC operations will now attempt to recover, similar to sender and
receiver, in case of failure.
Fixed Recover() to atomically rebuild the client.
Close() will now close auth auto-refresh.

* add transient error checks

* don't recover on a closed connection

use common.Retry() for Recover() retry loop
added recovery tracing and debug logging

* improve some doc comments

* avoid potential for infinite loop
2021-02-17 07:53:04 -08:00
atom move atom types into their own package 2018-06-17 13:25:54 -07:00
eng update CI to latest two Go versions (#195) 2020-10-23 13:21:01 -07:00
internal/test Update amqp and other dependencies (#153) 2019-12-16 09:58:02 -08:00
.gitignore Update amqp and other dependencies (#153) 2019-12-16 09:58:02 -08:00
CONTRIBUTING.md Adopting Modules for Package Management (#64) 2018-10-24 15:42:57 -07:00
LICENSE Initial commit 2018-01-10 10:23:46 -08:00
Makefile fix test reporting for integration pipeline (#185) 2020-08-10 13:16:28 -07:00
README.md Update amqp and other dependencies (#153) 2019-12-16 09:58:02 -08:00
action.go add filters and actions with tests 2018-12-19 17:20:00 -08:00
auto_forward_example_test.go extend test timeout and clean up examples a bit 2019-01-02 13:25:40 -08:00
azuredeploy.tf Support send and receiving custom annotations in System Properties (#169) 2020-06-03 12:15:05 -07:00
batch.go Update amqp and other dependencies (#153) 2019-12-16 09:58:02 -08:00
batch_disposition.go Update amqp and other dependencies (#153) 2019-12-16 09:58:02 -08:00
batch_disposition_test.go Update amqp and other dependencies (#153) 2019-12-16 09:58:02 -08:00
batch_test.go reduce message send and increase batch clear size 2019-01-02 21:14:45 -08:00
batching_example_test.go add example for sending a batch of messages 2019-01-02 19:28:05 -08:00
changelog.md Only retry with retryable amqp errors for sender 2021-01-11 20:57:18 +08:00
deadletter.go moved all over to tab and opencensus by default 2019-05-29 14:44:04 -07:00
deadletter_example_test.go fix some of the examples 2018-12-21 18:30:21 -08:00
deadletter_test.go fix vet and lint issues 2018-12-04 15:38:38 -08:00
defer_example_test.go add message session example 2019-01-03 09:27:05 -08:00
duplicate_detection_example_test.go Update amqp and other dependencies (#153) 2019-12-16 09:58:02 -08:00
entity.go add receive deferred messages with receive mode 2019-07-12 15:19:26 -07:00
errors.go Only retry with retryable amqp errors for sender 2021-01-11 20:57:18 +08:00
errors_test.go fixes #106 2019-03-12 15:46:25 -07:00
filter.go add filters and actions with tests 2018-12-19 17:20:00 -08:00
go.mod Fix for Websocket behind Proxy Issue (#196) 2020-12-02 07:58:44 -08:00
go.sum Fix for Websocket behind Proxy Issue (#196) 2020-12-02 07:58:44 -08:00
handler.go add test for session deferral and session required error 2019-06-17 09:32:10 -07:00
iterator.go refactor rpc and entities 2019-07-12 14:16:25 -07:00
iterator_examples_test.go remove all opentracing leftovers 2019-05-29 13:46:10 -07:00
iterator_test.go update to common 2.1 2019-07-19 11:05:54 -07:00
lockrenewal_test.go add changelog entry and clean up a test 2019-07-18 14:37:38 -07:00
message.go update dependencies (#179) 2020-08-10 13:39:14 -07:00
message_browse_example_test.go run make... 2019-01-02 11:07:48 -08:00
message_session.go Support send and receiving custom annotations in System Properties (#169) 2020-06-03 12:15:05 -07:00
message_session_test.go Update amqp and other dependencies (#153) 2019-12-16 09:58:02 -08:00
message_test.go Support send and receiving custom annotations in System Properties (#169) 2020-06-03 12:15:05 -07:00
mgmt.go Update amqp and other dependencies (#153) 2019-12-16 09:58:02 -08:00
mgmt_test.go add travis integration build and badges 2018-06-18 14:24:08 -07:00
namespace.go Consolidate auth auto-refresh (#205) 2021-02-09 16:13:35 -08:00
namespace_test.go Add AzureEnvironment namespace option and use its definition (#192) 2020-12-01 08:28:28 -08:00
namespace_useragent_test.go fixes #106 2019-03-12 15:46:25 -07:00
namespace_websocket_example_test.go bump arm sdk version 2019-04-26 10:47:26 -07:00
operation_constants.go Adding the ability to cancel scheduled messges 2018-11-02 14:37:07 -07:00
prefetch_example_test.go fix some of the examples 2018-12-21 18:30:21 -08:00
priority_subscription_example_test.go fmt 2019-01-02 13:26:05 -08:00
queue.go Fix for Websocket behind Proxy Issue (#196) 2020-12-02 07:58:44 -08:00
queue_examples_test.go Update amqp and other dependencies (#153) 2019-12-16 09:58:02 -08:00
queue_manager.go change out the log.For statements 2019-05-29 13:46:10 -07:00
queue_send_receive_example_test.go extend test timeout and clean up examples a bit 2019-01-02 13:25:40 -08:00
queue_test.go peek lock is backwards for defer 2019-07-15 10:43:11 -07:00
receiver.go Consolidate auth auto-refresh (#205) 2021-02-09 16:13:35 -08:00
rpc.go Add recovery mechanism to rpcClient (#206) 2021-02-17 07:53:04 -08:00
scheduled_message_examples_test.go Update amqp and other dependencies (#153) 2019-12-16 09:58:02 -08:00
sender.go Consolidate auth auto-refresh (#205) 2021-02-09 16:13:35 -08:00
session.go Support send and receiving custom annotations in System Properties (#169) 2020-06-03 12:15:05 -07:00
session_test.go refactor rpc and entities 2019-07-12 14:16:25 -07:00
sessions_example_test.go add some comments 2019-01-03 09:31:32 -08:00
subscription.go refactor rpc and entities 2019-07-12 14:16:25 -07:00
subscription_manager.go tell users they can't go higher than 5 minutes (#202) 2021-01-26 09:23:57 -08:00
subscription_test.go A few test case fixes (#184) 2020-08-10 12:43:15 -07:00
timeout_debug_test.go Adding Message Browsing tests. 2018-10-27 14:51:28 -07:00
timeout_test.go Adding Message Browsing tests. 2018-10-27 14:51:28 -07:00
topic.go Update amqp and other dependencies (#153) 2019-12-16 09:58:02 -08:00
topic_manager.go change out the log.For statements 2019-05-29 13:46:10 -07:00
topic_test.go fixes #106 2019-03-12 15:46:25 -07:00
tracing.go Add recovery mechanism to rpcClient (#206) 2021-02-17 07:53:04 -08:00

README.md

Microsoft Azure Service Bus Client for Golang

Go Report Card godoc Build Status Coverage Status

Microsoft Azure Service Bus is a reliable cloud messaging service (MaaS) which simplifies enterprise cloud messaging. It enables developers to build scalable cloud solutions and implement complex messaging workflows over an efficient binary protocol called AMQP.

This library provides a simple interface for sending, receiving and managing Service Bus entities such as Queues, Topics and Subscriptions.

For more information about Service Bus, check out the Azure documentation.

This library is a pure Golang implementation of Azure Service Bus over AMQP.

Preview of Service Bus for Golang

This library is currently a preview. There may be breaking interface changes until it reaches semantic version v1.0.0. If you run into an issue, please don't hesitate to log a new issue or open a pull request.

Install using Go modules

go get -u github.com/Azure/azure-service-bus-go

If you need to install Go, follow the official instructions

Examples

Find up-to-date examples and documentation on godoc.org.

Running tests

Most tests require a properly configured service bus in Azure. The easiest way to set this up is to use the Terraform deployment script. Running the integration tests will take longer than the default 10 mintues, please use a larger timeout go test -timeout 30m.

Have questions?

The developers of this library are all active on the Gopher Slack, it is likely easiest to get our attention in the Microsoft Channel. We'll also find your issue if you ask on Stack Overflow with the tags azure and go.

Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.