Skip to content

Commit

Permalink
Merge pull request HangfireIO#454 from HangfireIO/dev
Browse files Browse the repository at this point in the history
Release 1.5.0
  • Loading branch information
odinserj committed Oct 1, 2015
2 parents 5d7a1bd + 97a87aa commit aea9119
Show file tree
Hide file tree
Showing 265 changed files with 10,159 additions and 7,533 deletions.
7 changes: 7 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,13 @@ x64/
[Bb]in/
[Oo]bj/

# Visual Studio 2015 cache/options directory
.vs/

# DNX
project.lock.json
artifacts/

# MSTest test Results
[Tt]est[Rr]esult*/
[Bb]uild[Ll]og.*
Expand Down
1 change: 1 addition & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
# see travis-ci.org for details

language: csharp
sudo: false

# Make sure build dependencies are installed.
install:
Expand Down
2 changes: 1 addition & 1 deletion appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
# - Section names should be unique on each level.

# Don't edit manually! Use `build.bat version` command instead!
version: 1.4.7-build-0{build}
version: 1.5.0-build-0{build}

#---------------------------------#
# environment configuration #
Expand Down
81 changes: 27 additions & 54 deletions nuspecs/Hangfire.Core.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -12,60 +12,33 @@
<description>Core components for Hangfire (background job system for ASP.NET applications).</description>
<copyright>Copyright © 2013-2015 Sergey Odinokov</copyright>
<tags>Hangfire OWIN Long-Running Background Fire-And-Forget Delayed Recurring Tasks Jobs Scheduler Threading Queues</tags>
<releaseNotes>https://github.com/HangfireIO/Hangfire/releases

1.4.7
* Fixed – TaskCanceledException causes the job to be Processing state indefinitely.
* Fixed – Child job isn't executed when created in a TransactionScope with MSMQ.

1.4.6
* Fixed – Too many queries in `SchedulePoller` when background job is missing or in another state.

1.4.5
* Fixed – "This stream does not support seek operations." exception in Dashboard buttons and stats.

1.4.4
* Fixed – `InvalidCastException` in Dashboard when using Microsoft.Owin 3.0.1 package.
* Fixed – Non-working buttons and counter updates in Dashboard when a body stream isn't at the start position.

1.4.3
* Fixed – `OverflowException` on Job Details page when latency is too high (by @schulz3000).
* Fixed – Job serialization fix when using `TypeNameHandling.All` option (by @tystol).

1.4.2
* Added – Missing generic methods for continuations (by @yngndrw).
* Fixed – MSMQ extension does not work without explicit queue names in `UseMsmqQueues`.
* Fixed – Missing null-check in Retries page after casting connection to `JobStorageConnection`.
* Fixed – Enqueued jobs cannot be deleted from the Dashboard.
* Fixed – Error when building the project using `build.bat` on a machine with VS 2013 only (by @Cussa).

1.4.1
* Fixed – 1.4.0 ignoring `BackgroundJobServerOptions` settings in `UseHangfireServer` method.

1.4.0
* Added – Job continuations, please see new `BackgroundJob.ContinueWith` methods.
* Added – Time zone support for recurring jobs using `TimeZoneInfo` class.
* Added – Single place for global configuration, please see `GlobalConfiguration` class.
* Added – Made configurable the 'Back to Site' path in the dashboard (by @ysasaki1985).
* Added – Ability to plug in custom dashboard pages and modify navigation.
* Added – Ability to add custom metrics to the Home page in Dashboard.
* Added – Test coverage badge from Coveralls application.
* Added – Dedicated page for retrying jobs to distinguish them from other scheduled jobs.
* Added – Show expiration time on Job Details page.
* Added – More methods for build-in storage through `JobStorageConnection` and `JobStorageTransaction` classes.
* Added – Paging support for Recurring Jobs page.
* Added – New OWIN's `IAppBuilder` extension methods: `UseHangfireDashboard` and `UseHangfireServer`.
* Added – Add a notice about failed jobs expiration time.
* Added – Show warnings in Dashboard for jobs processing by inactive servers.
* Changed – New look and feel for Dashboard. New navigation, less colors, more accents.
* Changed – Determine job type of a current object when `MethodCallExpression` has `Object` property set.
* Changed – Making Product Version and File Version on the dll match the Assembly Version (by @fire-eagle).
* Changed – Use different log level for exceptions occured within automatic retry wrapper.
* Changed – Retry a job when there was an exception during state transition instead of moving it to the Failed state.
* Fixed – Recurring Page throws exception from CronExpressionDescriptor library.
* Fixed – Hangfire stops processing when storage outage was too long.
* Fixed – Don't leak foreground colors in ColouredConsoleLogger.
* Obsolete – `BackgroundJobServer`'s `Start` and `Stop` methods are obsolete.
<releaseNotes>http://hangfire.io/blog/

1.5.0
* Added – `IBackgroundProcess` interface that allows to implement custom background processes.
* Added – `BackgroundProcessingServer` class for creating a server instance with completely custom background processes.
* Added – Support for running multiple `BackgroundJobServer` instances in the same AppDomain without explicit server names.
* Added – `JobActivatorScope` class to support custom IoC scopes/lifetimes.
* Added – Allow to specify a custom queue for recurring jobs (by @maleet).
* Added – Allow to use CancellationToken type as a job method parameter.
* Added – It is now possible to query the storage in state applying filters.
* Added – Allow to pass custom filters to `BackgroundJobServer` via options.
* Added – Option to hide the "Back to site" link (by @dradovic).
* Changed – Server components and background processes now use `Task` with `TaskCreationOptions.LongRunning`.
* Changed – ServerIds are now generated without ServerName, server names are deprecated.
* Changed – Arguments Renderer now supports TimeSpan and DateTime (by @yngndrw).
* Changed – Minor improvements for Dashboard navigation (by @pwelter34).
* Changed – Worker does not process a job when a transition to the Processing state failed (by @yngndrw).
* Changed – `BackgroundJobClientException` is thrown instead of `CreateJobFailedException`.
* Changed – WorkerId is now auto-generated and based on a GUID.
* Changed – Use StackTraceFormatter package for marking-up stack traces (by @atifaziz).
* Changed – Updated Dashboard CSS to Twitter Bootstrap 3.3.5.
* Fixed – Prevent worker from fetching and processing a job on shutdown.
* Fixed – `TaskCanceledException` thrown from a job method leads to failed job as expected.
* Fixed – Make `DelayedJobScheduler` resilient to empty background job ids.
* Fixed – Logical error in SqlServerDistributedLockTimeout value check (by @Tom-Kelly).
* Fixed – `OverflowException` in Dashboard when job duration exceeds int.MaxValue (by @mavenius).
* Fixed – "More details" button in Dashboard changes to "Less details" when collapsed (by @pascalberger).
</releaseNotes>
<dependencies>
<dependency id="Owin" version="1.0" />
Expand Down
5 changes: 4 additions & 1 deletion nuspecs/Hangfire.SqlServer.MSMQ.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,11 @@
<description>MSMQ queues support for SQL Server job storage implementation for Hangfire (background job system for ASP.NET applications).</description>
<copyright>Copyright © 2014-2015 Sergey Odinokov</copyright>
<tags>Hangfire SqlServer MSMQ</tags>
<releaseNotes>https://github.com/HangfireIO/Hangfire/releases
<releaseNotes>http://hangfire.io/blog/

1.5.0
* Added – Support for remote MSMQ queues through DTC transactions.

1.4.0
* Changed – Speed up `GetCount` method with native implementation.
* Fixed – Incorrect order of fetching when multiple queues used.
Expand Down
2 changes: 1 addition & 1 deletion nuspecs/Hangfire.SqlServer.RabbitMQ.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<description>RabbitMQ queues support for SQL Server job storage implementation for Hangfire (background job system for ASP.NET applications).</description>
<copyright>Copyright © 2014 Denny Ferrassoli</copyright>
<tags>Hangfire SqlServer RabbitMQ</tags>
<releaseNotes>https://github.com/HangfireIO/Hangfire/releases
<releaseNotes>http://hangfire.io/blog/

1.4.2
* Fixed – Incompatibility issue with RabbitMQ.Client >= 3.4.0 (by @justmara).
Expand Down
31 changes: 11 additions & 20 deletions nuspecs/Hangfire.SqlServer.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -12,26 +12,17 @@
<description>SQL Server 2008+ (including Express), SQL Server LocalDB and SQL Azure storage support for Hangfire (background job system for ASP.NET applications).</description>
<copyright>Copyright © 2013-2015 Sergey Odinokov</copyright>
<tags>Hangfire SqlServer SqlAzure LocalDB</tags>
<releaseNotes>https://github.com/HangfireIO/Hangfire/releases
<releaseNotes>http://hangfire.io/blog/

1.4.6
* Fixed – SQL command timeout in `DisableConcurrentExecution` filter (by @Tom-Kelly).
* Fixed – SQL deadlocks in `ExpirationManager` background process.

1.4.3
* Fixed – SQL Server storage does not work with case-sensitive and binary collations (by @ilessa).
* Fixed – "Incorrect syntax near 'MERGE'" error in `CountersAggregator` component.

1.4.0
* Added – Ability to pass isolation level to use in transactions, default is `serializable`.
* Added – Make the expiration check interval configurable (by @travisblakeney).
* Changed – Use read committed or parent transaction isolation level instead of `serializable`.
* Changed – Automatically aggregate records in `Hangfire.Counter` table.
* Changed – Add indexes to prevent blocking rows by Expiration Manager.
* Changed – Remove the `with tablock` hint from the expiration cleanup (by @travisblakeney).
* Changed – Don't pass IsolationLevel to TransactionScope by default.
* Changed – Coarse grained locks for Hash, List and Set tables to prevent deadlocks.
* Fixed – Retry on deadlocks during automatic migration on server restart.
1.5.0
* Added – Ability to specify the schema for SQL Server job storage (by @ryanmwright).
* Added – `TransactionTimeout` option for configuring the `TransactionScope` timeout.
* Added – `DashboardJobListLimit` option to prevent full table scans in Dashboard.
* Changed – `SqlServerDistributedLock` class is now public.
* Changed – Use `rowlock` table hint in job fetch query to prevent escalation.
* Changed – Dramatically improved page load times in Dashboard.
* Changed – Instant re-queue for background jobs even after ungraceful shutdown.
* Changed – `JobQueue.Queue` and `Server.Id` column length increased to 50 and 100 respectively (by @maleet).
</releaseNotes>
<dependencies>
<dependency id="Hangfire.Core" version="[0.0.0]" />
Expand All @@ -41,7 +32,7 @@
<file src="Net45\Hangfire.SqlServer.dll" target="lib\net45" />
<file src="Net45\Hangfire.SqlServer.xml" target="lib\net45" />
<file src="Net45\Hangfire.SqlServer.pdb" target="lib\net45" />
<file src="Tools\Install.sql" target="tools\install.sql" />
<file src="Tools\DefaultInstall.sql" target="tools\install.sql" />
<file src="..\src\Hangfire.SqlServer\**\*.cs" target="src" />
</files>
</package>
115 changes: 39 additions & 76 deletions nuspecs/Hangfire.nuspec
Original file line number Diff line number Diff line change
Expand Up @@ -10,91 +10,54 @@
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<licenseUrl>https://raw.github.com/HangfireIO/Hangfire/master/LICENSE.md</licenseUrl>
<description>
Incredibly easy and reliable way to perform fire-and-forget, delayed and recurring long-running, short-running, CPU or I/O intensive tasks inside ASP.NET application. No Windows Service / Task Scheduler required. Even ASP.NET is not required.
An easy and reliable way to perform fire-and-forget, delayed and recurring long-running, short-running, CPU or I/O intensive tasks inside ASP.NET application. No Windows Service / Task Scheduler required. Even ASP.NET is not required.
Backed by Redis, SQL Server, SQL Azure or MSMQ. This is a .NET alternative to Sidekiq, Resque and Celery.
http://hangfire.io/
</description>
<copyright>Copyright © 2013-2015 Sergey Odinokov</copyright>
<tags>Hangfire AspNet MVC OWIN SqlServer Long-Running Background Fire-And-Forget Delayed Recurring Tasks Jobs Scheduler Threading Queues</tags>
<releaseNotes>https://github.com/HangfireIO/Hangfire/releases
<releaseNotes>http://hangfire.io/blog/

1.4.7
* Fixed – TaskCanceledException causes the job to be Processing state indefinitely.
* Fixed – Child job isn't executed when created in a TransactionScope with MSMQ.

1.4.6
* Fixed – SQL command timeout in `DisableConcurrentExecution` filter (by @Tom-Kelly).
* Fixed – SQL deadlocks in `ExpirationManager` background process.
* Fixed – Too many queries in `SchedulePoller` when background job is missing or in another state.

1.4.5
* Fixed – "This stream does not support seek operations." exception in Dashboard buttons and stats.

1.4.4
* Fixed – `InvalidCastException` in Dashboard when using Microsoft.Owin 3.0.1 package.
* Fixed – Non-working buttons and counter updates in Dashboard when a body stream isn't at the start position.

1.4.3
* Fixed – SQL Server storage does not work with case-sensitive and binary collations (by @ilessa).
* Fixed – "Incorrect syntax near 'MERGE'" error in `CountersAggregator` component.
* Fixed – `OverflowException` on Job Details page when latency is too high (by @schulz3000).
* Fixed – Job serialization fix when using `TypeNameHandling.All` option (by @tystol).

1.4.2
* Added – Missing generic methods for continuations (by @yngndrw).
* Fixed – MSMQ extension does not work without explicit queue names in `UseMsmqQueues`.
* Fixed – Missing null-check in Retries page after casting connection to `JobStorageConnection`.
* Fixed – Enqueued jobs cannot be deleted from the Dashboard.
* Fixed – Error when building the project using `build.bat` on a machine with VS 2013 only (by @Cussa).
* Fixed – Incompatibility issue with RabbitMQ.Client >= 3.4.0 (by @justmara).

1.4.1
* Fixed – 1.4.0 ignoring `BackgroundJobServerOptions` settings in `UseHangfireServer` method.

1.4.0

Hangfire.Core:
* Added – Job continuations, please see new `BackgroundJob.ContinueWith` methods.
* Added – Time zone support for recurring jobs using `TimeZoneInfo` class.
* Added – Single place for global configuration, please see `GlobalConfiguration` class.
* Added – Made configurable the 'Back to Site' path in the dashboard (by @ysasaki1985).
* Added – Ability to plug in custom dashboard pages and modify navigation.
* Added – Ability to add custom metrics to the Home page in Dashboard.
* Added – Test coverage badge from Coveralls application.
* Added – Dedicated page for retrying jobs to distinguish them from other scheduled jobs.
* Added – Show expiration time on Job Details page.
* Added – More methods for build-in storage through `JobStorageConnection` and `JobStorageTransaction` classes.
* Added – Paging support for Recurring Jobs page.
* Added – New OWIN's `IAppBuilder` extension methods: `UseHangfireDashboard` and `UseHangfireServer`.
* Added – Add a notice about failed jobs expiration time.
* Added – Show warnings in Dashboard for jobs processing by inactive servers.
* Changed – New look and feel for Dashboard. New navigation, less colors, more accents.
* Changed – Determine job type of a current object when `MethodCallExpression` has `Object` property set.
* Changed – Making Product Version and File Version on the dll match the Assembly Version (by @fire-eagle).
* Changed – Use different log level for exceptions occured within automatic retry wrapper.
* Changed – Retry a job when there was an exception during state transition instead of moving it to the Failed state.
* Fixed – Recurring Page throws exception from CronExpressionDescriptor library.
* Fixed – Hangfire stops processing when storage outage was too long.
* Fixed – Don't leak foreground colors in ColouredConsoleLogger.
* Obsolete – `BackgroundJobServer`'s `Start` and `Stop` methods are obsolete.
1.5.0

Hangfire.SqlServer:
* Added – Ability to pass isolation level to use in transactions, default is `serializable`.
* Added – Make the expiration check interval configurable (by @travisblakeney).
* Changed – Use read committed or parent transaction isolation level instead of `serializable`.
* Changed – Automatically aggregate records in `Hangfire.Counter` table.
* Changed – Add indexes to prevent blocking rows by Expiration Manager.
* Changed – Remove the `with tablock` hint from the expiration cleanup (by @travisblakeney).
* Changed – Don't pass IsolationLevel to TransactionScope by default.
* Changed – Coarse grained locks for Hash, List and Set tables to prevent deadlocks.
* Fixed – Retry on deadlocks during automatic migration on server restart.
Hangfire.Core
* Added – `IBackgroundProcess` interface that allows to implement custom background processes.
* Added – `BackgroundProcessingServer` class for creating a server instance with completely custom background processes.
* Added – Support for running multiple `BackgroundJobServer` instances in the same AppDomain without explicit server names.
* Added – `JobActivatorScope` class to support custom IoC scopes/lifetimes.
* Added – Allow to specify a custom queue for recurring jobs (by @maleet).
* Added – Allow to use CancellationToken type as a job method parameter.
* Added – It is now possible to query the storage in state applying filters.
* Added – Allow to pass custom filters to `BackgroundJobServer` via options.
* Added – Option to hide the "Back to site" link (by @dradovic).
* Changed – Server components and background processes now use `Task` with `TaskCreationOptions.LongRunning`.
* Changed – ServerIds are now generated without ServerName, server names are deprecated.
* Changed – Arguments Renderer now supports TimeSpan and DateTime (by @yngndrw).
* Changed – Minor improvements for Dashboard navigation (by @pwelter34).
* Changed – Worker does not process a job when a transition to the Processing state failed (by @yngndrw).
* Changed – `BackgroundJobClientException` is thrown instead of `CreateJobFailedException`.
* Changed – WorkerId is now auto-generated and based on a GUID.
* Changed – Use StackTraceFormatter package for marking-up stack traces (by @atifaziz).
* Changed – Updated Dashboard CSS to Twitter Bootstrap 3.3.5.
* Fixed – Prevent worker from fetching and processing a job on shutdown.
* Fixed – `TaskCanceledException` thrown from a job method leads to failed job as expected.
* Fixed – Make `DelayedJobScheduler` resilient to empty background job ids.
* Fixed – Logical error in SqlServerDistributedLockTimeout value check (by @Tom-Kelly).
* Fixed – `OverflowException` in Dashboard when job duration exceeds int.MaxValue (by @mavenius).
* Fixed – "More details" button in Dashboard changes to "Less details" when collapsed (by @pascalberger).

Hangfire.SqlServer.Msmq:
* Changed – Speed up `GetCount` method with native implementation.
* Fixed – Incorrect order of fetching when multiple queues used.
Hangfire.SqlServer
* Added – Ability to specify the schema for SQL Server job storage (by @ryanmwright).
* Added – `TransactionTimeout` option for configuring the `TransactionScope` timeout.
* Added – `DashboardJobListLimit` option to prevent full table scans in Dashboard.
* Changed – `SqlServerDistributedLock` class is now public.
* Changed – Use `rowlock` table hint in job fetch query to prevent escalation.
* Changed – Dramatically improved page load times in Dashboard.
* Changed – Instant re-queue for background jobs even after ungraceful shutdown.
* Changed – `JobQueue.Queue` and `Server.Id` column length increased to 50 and 100 respectively (by @maleet).

Hangfire.RabbitMQ:
* Added – Allow a URI to be used for `RabbitMQConnectionConfiguration` (by @dennyferra).
Hangfire.SqlServer.Msmq
* Added – Support for remote MSMQ queues through DTC transactions.
</releaseNotes>
<dependencies>
<dependency id="Hangfire.Core" version="[0.0.0]" />
Expand Down
2 changes: 1 addition & 1 deletion psake-project.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ Task Collect -Depends Merge -Description "Copy all artifacts to the build folder
Collect-Assembly "Hangfire.SqlServer.RabbitMq" "Net45"

Collect-Content "content\readme.txt"
Collect-Tool "src\Hangfire.SqlServer\Install.sql"
Collect-Tool "src\Hangfire.SqlServer\DefaultInstall.sql"
}

Task Pack -Depends Collect -Description "Create NuGet packages and archive files." {
Expand Down
2 changes: 1 addition & 1 deletion samples/ConsoleSample/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public static void Main()
{
Queues = new[] { "critical", "default" }
};

using (new BackgroundJobServer(options))
{
var count = 1;
Expand Down
Loading

0 comments on commit aea9119

Please sign in to comment.