Skip to content

Releases: HangfireIO/Hangfire.Azure.ServiceBusQueue

6.0.0

Choose a tag to compare

@odinserj odinserj released this 14 Apr 02:23
v6.0.0
a28ce31

Release Notes

  • Breaking – Bump Azure.Messaging.ServiceBus dependency to version 7.19.0 (PR #26 by @claytondus).
  • AddedTokenCredential-based property to the ServiceBusQueueOptions class (PR #26 by @claytondus).
  • Project – Sign NuGet package and .NET assemblies on build with a company's own certificate.
  • Project – Require package signature validation when restoring dependencies.
  • Project – Add HangfireIO as an owner for the NuGet package.
  • Project – Add readme file and icon to the NuGet package.
  • Project – Fix Git repository URL in the NuGet package metadata.
  • Project – Enable source link support with embedded symbols for simplified debugging.
  • Project – Enable NuGet package restore with lock file and locked mode.

5.0.0

Choose a tag to compare

@odinserj odinserj released this 05 Oct 18:36

Release Notes

Huge work by @GiampaoloGabba to resurrect this project:

  • Support to .NET Standard 2
  • Use of Azure.Messaging.Servicebus SDK (the latest, and recommended, Azure Service Bus .NET SDK available)
  • New overload for LinearRetryPolicy with a TimeSpan array (to define custom waits between retries)
  • New setting for QueuePollInterval (to be able to have an additional timeout in case of low read timeouts and multiple queues)
  • New GlobalConfigurationExtensions to play nice with .NETCore ServiceCollection configuration
  • Updated readme.md

Also, removed the MinSyncReceiveTimeout from ServiceBusQueueJobQueue.cs because with the new SDK, waiting for just 1 Tick doesnt work: no messages are retreived, moreover,all the queues should honor the LoopReceiveTimeout option.

Closes #19, closes #18, closes #7, also fix #15

4.1.0

Choose a tag to compare

@odinserj odinserj released this 11 May 09:31

Added ServiceBusQueueOptions.LockRenewalDelay option that controls the delay between lock renewal commands are sent to ServiceBus, when background job is still processed by a worker. Previously lock renewal attempt was made just a second before the deadline, and we had the following problems.

  • Delay was calculated as a difference between message's timestamp that was based on ServiceBus host time, and processing server's current time. So when time on those machines was non-synchronised (very likely scenario), we may send lock renewal query too late.
  • We have only a single attempt to renew a lock. When that attempt fails even due to a transient error like network blip (we are in cloud, they happen constantly), lock renewal process is stopped, causing unwanted retry.

Instead, the new option allows us to send renewal queries with the configured delay. We can set it to 15 seconds, with lock timeout of 1 minute and have ~4 attempts to renew the lock even if there are transient errors.

This release doesn't change the previous behaviour that will be used by default. The new behaviour is optional, and may be changed to the default one in future versions.

4.0.0

Choose a tag to compare

@barclayadam barclayadam released this 09 Apr 09:06
beaab92

Provides support for Hangfire v1.7.0 (https://github.com/HangfireIO/Hangfire/releases/tag/v1.7.0) that has breaking changes to storage interfaces.

3.0.1

Choose a tag to compare

@barclayadam barclayadam released this 07 Nov 16:14
5ac29c7

Minor release to enable configuration of RequiresDuplicateDetection that is a premium-only option that cannot be set on Basic queues.

Default configuration migrated back to not setting this value at all and taking the default value.

3.0.0

Choose a tag to compare

@barclayadam barclayadam released this 29 Oct 14:28
29264fb

Performance and reliability improvements. No code changes are required but new default behaviour warrants a major version bump:

  • When looping around all queues to check for jobs reduce wait time from 5 seconds to 500ms. This increases throughput at potentially increased costs in Azure due to higher request counts
  • Default linear retry policy of 3 times at 1 second intervals when enqueuing jobs. Retry policy is configurable
  • Default queue creation to enable duplicate message detection, using job id as MessageId to provide deduplication (this does not affect existing queues)

2.2.1

Choose a tag to compare

@barclayadam barclayadam released this 25 Aug 10:30
ca1410d

A minor update that changes when queue clients are created, to defer the work until they are actually used to avoid work up-front of every application start

2.2.0

Choose a tag to compare

@barclayadam barclayadam released this 28 Mar 14:02

A recommended upgrade for all users to improve the reliability and accuracy of the service bus integration:

  • Messages will be kept alive during processing to avoid MessageLockLostException when processing takes longer than the queue's LockDuration
  • Fix job counts when deadlettered messages exist on queue

This release also adds a number of integration tests for the monitoring and queue implementations for a better development experience.

2.1.1

Choose a tag to compare

@barclayadam barclayadam released this 18 Mar 16:11

Very small logging improvement from previous release:

  • Better exception message if no Manage permission when checking queue existence

2.1.0

Choose a tag to compare

@barclayadam barclayadam released this 18 Mar 13:48
  • New option CheckAndCreateQueues that allows queues to be created without the Manage permission as they will be used as-is without any pre-checks. Default continues to be true
  • A small amount of logging has been added on initialisation to aid diagnosing start-up issues
  • QueueClient objects are created up-front and stored for quicker retrieval on use (i.e. sending & receiving messages)