I'm testing out Hangfire at our company, and would appreciate some advice on the easiest way to structure things. What we want is a single dashboard to manage all our jobs. Everything would be running on the same physical server, and our jobs would all be in separate codebases/projects. I've read a bunch of documentation and discussion, but haven't really found a reliable, up-to-date solution. Or at least not one that I could understand
What's the easiest way to get a single-dashboard solution?
- A single web (or whatever) project acting as Hangfire client + server instance, that references multiple jobs compiled into their own DLLs? (Jobs don't know about Hangfire)
- One Hangfire dashboard project, and each job project being its own Hangfire server instance? (Jobs do know about Hangfire)
- Would jobs be enqueued from the project running the dashboard, or could each job project also act as a Hangfire client and enqueue itself as long as they're using the same Hangfire DB?
- Are job queues relevant here?
- Both approaches require common assemblies with Interfaces for job methods, right?
- Do I need to use IoC containters too?
Any advice is appreciated. Example projects would be even better, especially if it includes how to set things up in Visual Studio. For reference I'm currently using a basic ASP.NET project for client, dashboard, and server using OWIN extension methods, which references a separate VS project for my job.