我正在使用NSB的項目,真的很喜歡它,但它是我的第一個NSB解決方案,所以有點小菜鳥。我們有一項工作需要每天處理成員 - 這項工作不會很長,因爲工作很簡單,但可能會影響數千名成員,並且在將來可能會有數十或數十萬名成員。NServiceBus批處理長時間運行的作業
讓這一切都發生在一個單一的處理程序去感覺不對,但有一個處理程序發現受影響的成員,然後發射每個單獨的事件,在相反的方向聽起來有點太多。我可以想到其他一些方法,但是想知道在NSB中是否有處理這種情況的慣用方法?
編輯澄清:我使用Schedule
在凌晨3點發送命令,該處理程序將查詢SQL db以獲取需要處理的成員列表。處理將涉及每個成員更新/插入一行或兩行。我的問題是圍繞如何處理NSB內可能的成員列表。
編輯第2部分:工作現在需要每月運行,而不是每天運行。
需要更多的細節請。這項工作的性質是什麼?它是一個SQL工作嗎?計劃任務?一些基於cron的背景?爲什麼預期處理程序會「發現」它需要做哪些工作?當然你應該把所需的工作交給處理者。 –
這是一個SQL工作 - 需要查詢數據庫以查看哪些成員符合特定條件,然後更新併爲每個成員插入一行或兩行 – GoatInTheMachine
@GoatInTheMachine查看我的答案。關於使用NBus的好處是,如果這些事務失敗,它們將會重試,只是確保您的INSERT是冪等的。 –