顯示具有 Hangfire 標籤的文章。 顯示所有文章
顯示具有 Hangfire 標籤的文章。 顯示所有文章

簡單五步驟:ASP.NET Core整合Hangfire來排程更新口罩剩餘數量資料

簡單五步驟:ASP.NET Core整合Hangfire來排程更新口罩剩餘數量資料

口罩API系列()()()就資料面而言,已經處理的差不多了,不過,專案還有改善的空間。

  1. 專案第一次啟動時,需要初始化資料庫資料。目前實作的程式碼而言,我們每次請求都會重覆檢查一次
  2. 每次請求都會重覆檢查一次資料源是否有更新

關注點分離來看,目前的 MaskController 工作有點雜且職責不夠單一。第一個問題,如果從 EF Core 下手,可能是實作 SeedData 方式來解決,但比較麻煩的事情是資料來源是網路上,而且資料內容不固定。第二點比較麻煩。正在構思時,剛好好友 Demo 貼文說 dotblogs 改版採用 Hangfire 來處理排程事件。疑,Hangfire 不就是這個需求的最佳解嗎!

使用Hangfire處理ASP.NET MVC/Web API長時間與排程工作」多年前已經用的非常開心。這次讓我們在 ASP.NET Core Web API 來整合 Hangfire 來解決我們碰到的問題。

使用Hangfire處理ASP.NET MVC/Web API長時間與排程工作

使用Hangfire處理ASP.NET MVC/Web API長時間與排程工作

工作管理

網頁通常是做為一個即時資訊交換工具,也就是一個請求-回應模式,不過在現實世界(或討論區)中經常會聽到希望可以進行長時間作業與排程作業的需求,網頁長時間作業通常是使用非同步技術來處理,但排程作業呢?這在單純的網頁作業流程中比較難處理,通常會說交給後端SQL Server排程處理或使用Windows工作排程器或寫成Windows Service來解決。

廢話那麼多,反正就是傳統網頁要處理長時間工作與排程工作都要額外花費不少心思,最近剛好有這方面的需求,試玩國外火紅Hangfire,不試還好,試了…

Hangfire - 射後不理、延遲、定時

Hangfire重點功能

Hangfire官網可以看到最明顯的三個功能:Fire-and-forget tasks、Delayed tasks、Recurring tasks。