CadyIO / hangfire-ravendb

RavenDB job storage for Hangfire
https://www.nuget.org/packages/Hangfire.Raven/
18 stars 35 forks source link

Re-Add Embedded RavenDB Functionality #28

Open jblacker opened 6 years ago

jblacker commented 6 years ago

This PR will re-add the ability to use Embedded RavenDB if the consumer of the library is using .NET Framework (4.5.x or 4.6.x). Additionally, it adds a sample project using the embedded database and updates the current sample to remove embedding options to eliminate confusion.

The only thing that seems to be problematic is that when you enqueue an item that's not delayed/scheduled or recurring a ConcurrencyException is thrown in 90% of cases. This exception appears to be safely ignorable, but it's currently not handled because I'm still not sure what's causing it. The trace of this exception appears to be from an etag mismatch when calling _session.SaveChanges() within the Commit() method of the RavenWriteOnlyTransaction class when changing that job's state. All other methods of running background tasks appear to be working without issues in my initial tests.