Derek e5e8c76bee + Assemblies (more reliable in combination with RavenDB $type helper (used by Newtonsoft.Json))
+ JobWrapper instead of JSON text as Job parameter, is better in finding types (for example interfaces)
+ Method/Property JsonConverters for RavenDB, needed for the InvocationData replacement
~ Namespace fix (HangFire vs Hangfire (capital F)
- InvocationData, RavenDB is already a JSON database, so had no purpose to Serialize and Deserialize job data
.. Updated Hangfire.Core to latest 1.6.3 dependency
.. Downgraded Newtonsoft.Json to version matching RavenDB. Will be upgraded in RavenDB 3.5.
2016-08-21 23:27:10 +02:00
2015-11-02 14:44:02 +01:00
.
2015-10-19 13:09:10 -05:00
2015-10-16 16:18:39 -05:00

Usage

This is how you connect to a ravendb server (local or remote)

GlobalConfiguration.Configuration.UseRavenStorage("connection_string", "database_name");

This is how you connect to an embedded ravendb instance

GlobalConfiguration.Configuration.UseEmbeddedRavenStorage();

To enqueue a background job you must have the following in the code somewhere at least once or the background job queue will not process

var client = new BackgroundJobServer();
\\then you can do this, which runs once
BackgroundJob.Enqueue(() => Console.WriteLine("Background Job: Hello, world!"));

Delayed tasks

Scheduled background jobs are being executed only after given amount of time.

BackgroundJob.Schedule(() => Console.WriteLine("Reliable!"), TimeSpan.FromDays(7));

Recurring tasks

Recurring jobs were never been simpler, just call the following method to perform any kind of recurring task using the CRON expressions.

RecurringJob.AddOrUpdate(() => Console.WriteLine("Transparent!"), Cron.Daily);

Continuations

Continuations allow you to define complex workflows by chaining multiple background jobs together.

var id = BackgroundJob.Enqueue(() => Console.WriteLine("Hello, "));
BackgroundJob.ContinueWith(id, () => Console.WriteLine("world!"));

License

Copyright © 2013-2014 Sergey Odinokov.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this program. If not, see http://www.gnu.org/licenses/.

S
Description
RavenDB job storage for Hangfire
Readme 7.3 MiB
Languages
C# 100%