Hi,
First of all, thanks for the great job you’re doing with this Hangfire project.
We currently evaluating Hangfire as part of our synchronization engine on client side. It’s mostly triggering calls to our Rest API. In the end we would like to have minimal footprint during deployment process on let say a Windows Tablet as client device.
Here come our request: Is there a plan to support SQL Server Compact Edition? If not from your side we may consider to participate to do it. We had a quick look at Hangfire.SqlServer source code and from what we see (but the look was maybe too fast) it seams possible. Any advise will be much appreciated.
Kind Regards,
Guillaume Raymond
Senior .NET Developper @ ED47
Hi, @Guillaume_Raymond,
The main delicate moment for RDBMS-based storage implementation for Hangfire is the job fetch operation – only one worker should fetch a job. SQL Server implementation uses atomic update
operation with output
clause to achieve this goal. I’m in doubt that SQL CE supports it, however the CE implementation may use transactions for this purpose.
This topic requires more investigation, and I have no time to do this. But I can help by answering questions if you decide to start the implementation. But I’m in doubt – it seems to me that Hangfire usage for your task is overkill.
Thanks for this quick feedback. Your point of view concerning the job fetching is really accurate. And by the way your T-SQL skills looks amazing!
You are probably in the truth saying that Hangfire may be oversized for what we trying to achieve. In the other hand as developer it’s a valuable solution to kick start with background jobs. So easy to re-queue/ trigger a job. So we may think a bit before decide or not if we will “clone” Hangfire.SQLServer as a template for a possible “Hangfire.SQLCE”. For sure we will let you know in that case.