OK, I figured out where it went wrong.
In the job processor. It’s not enough to specify that you use multiple queues in the .UseMsmqQueues() method call. You also need to specify the queues in the BackgroundJobServerOptions:
GlobalConfiguration.Configuration
.UseSqlServerStorage("Server=localhost; Database=HangFire; Integrated Security=SSPI;")
.UseMsmqQueues(@".\hangfire-{0}", "critical", "default");
using (var server = new BackgroundJobServer(
new BackgroundJobServerOptions
{
Queues = new[] {"critical", "default"}
}))
{
Console.WriteLine("Hangfire Server started. Press any key to exit...");
Console.ReadKey();
}
This will cause the job processor server to read the other queue