Skip to content

Releases: HangfireIO/Hangfire.Azure.ServiceBusQueue

5.0.0

05 Oct 18:36
Compare
Choose a tag to compare

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

11 May 09:31
Compare
Choose a tag to compare

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

09 Apr 09:06
beaab92
Compare
Choose a tag to compare

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

07 Nov 16:14
5ac29c7
Compare
Choose a tag to compare

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

29 Oct 14:28
29264fb
Compare
Choose a tag to compare

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

25 Aug 10:30
ca1410d
Compare
Choose a tag to compare

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

28 Mar 14:02
Compare
Choose a tag to compare

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

18 Mar 16:11
Compare
Choose a tag to compare

Very small logging improvement from previous release:

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

2.1.0

18 Mar 13:48
Compare
Choose a tag to compare
  • 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)

2.0.0

05 Nov 15:06
Compare
Choose a tag to compare

Upgraded Hangfire.Core & Hangfire.SqlServer dependencies to 1.5, which has changed interfaces and therefore requires a major bump.

No new features in this release.