I was wondering what modules of the Hangfire.Core or Hangfire.SqlServer is in charge of dequeing an enqueued job and processing it? And can we custom these methods?
Hangfire.Core contains all the types and methods Hangfire brings, with abstracted job storage.
Hangfire.SqlServer contain storage implementation related to SQL Server. But I don’t understand, what do you want to achieve. Can you detail your questions?
What I mean is that I’d like to have the capabilities of customizing Hangfire library methods if possible. For example, alter the built-in timer duration, so it dequeues jobs more or less frequently.
Hangfire is customizable a lot, but this concept is not well documented yet If you like to read the source code, you’ll receive the following ways to customize it:
- Add code before and after creating a background job (through client filters).
- Add code actions before and after performing a background job (through server filters). Please see CaptureCultureAttribute for example.
- Modify the state change pipeline, including introducing the new states (through state filters and custom states). See AutomaticRetryAttribute and QueueAttribute for examples.
- You can use extensible job storage to persist your own data.
- You can add new pages to the Hangfire dashboard (in 1.4 it will be possible to alter the dashboard menu either).
- You can add support for your own storage.
- Maybe other things I’ve missed
As you can see, there are a lot of work for the documentation
Would you mind elaborating little on introducing new states. My jobs can take a long time to cancel and I would like a Cancelling state…