根據 Hangfire 官網,Hangfire 預設可以設定多個 Queue,並且根據順序決定哪個 Queue 要先執行,實際執行順序會根據你的儲存套件而有所不同。例如使用 Hangfire.SqlServer 的時候,會根據 Queue 的字母順序來決定執行順序,會忽略在 Startup 中設定的順序。但當使用 Hangfire.Pro.Redis 的時候,則是會根據 Index 決定哪個 Queue 會先執行,排序在前面的 Queue 裡面的工作在有空出的 Worker 時會被優先安排開始執行。
我目前所使用的套件 Hangfire.MySqlStorage 是以名字進行排序,因此命名時必須注意他的名字順序,我個人的實作方式是在最前面加上一個編號。
另外也筆記一下, Hangfire Queue 的命名規定是:小寫字母、數字、"-" 跟 "_" 所組成的字串。