I am using SQL Server (not MSMQ) but this same behaviour is happening to me.
I have a long running background task that gets fired off on startup, for illustration purposes:
public class OwinStartup
public void Configuration(IAppBuilder app)
BackgroundJob.Enqueue(() => Foo(JobCancellationToken.Null));
public static void Foo(IJobCancellationToken cancellationToken)
When I first launch my site from Visual Studio in IIS Express (F5), Foo gets enqueued and is in the Processing list, however, if I then stop my debug session in VS, and restart the site using F5, I see the original Foo in the Processing list, and a second Foo perpetually stuck in the queue.
If I then stop the site using the IIS Express controller in my task bar (as opposed to just cancelling the debug session in VS), and restart, the subsequent Foo will begin processing (but the second Foo remains in the queue).
I struggled with Hangfire for a full work day yesterday,and am almost ready to throw the towel in and use a different solution! Please help!