我開發一個簡單的汽車業務系統,我要實現以下功能:
- 一個非常特殊的車型被傳遞到一家店。這個模型中有很多人在等待列表中。
- 當汽車到達時,第一個客戶有權購買它,他/她有24小時使用這個機會。
我在數據庫中有一個特殊的狀態,用於確定用戶是否:在等待列表中(我有確切的位置)或可以使用機會購買汽車。每當汽車到達時,我都會運行一個方法來更改等待列表中第一個客戶端的狀態。問題出在這裏:
問題: 客戶可以在24小時內使用他的機會。但是,如果他/她買了車,我最終必須檢查。出於這個原因,我必須安排一種方法在24小時內運行。
可能的解決方案: 我在想兩件事。首先是使用像Hangfire這樣的工作計劃程序。問題是,因爲我的應用程序中沒有任何其他工作,所以我不想爲這樣一個小東西包含整個包。其次是使用異步檢查方法,並讓線程在繼續前24小時睡眠(我不習慣使用線程,這只是一個想法)。我從this文章中獲得了這個想法。請記住,不止一輛汽車可以抵達多個商店。這是否意味着我應該使用很多線程以及它會如何影響系統的性能?
問:
這兩種方案的比較好?
在這種特殊情況下您是否還有另一種可能性?
是的,我正在運行SQL Sever,但它託管在Azure上,就我而言,我不能在那裏使用SQL代理。有沒有一種方法來實現與沒有SQL代理的控制檯應用程序的想法? – StefanL19
啊,我明白了。在這種情況下,您可以查看Azure中的任務計劃程序。我不是Azure專家,但是從描述來看,它與Windows Task Scheduler非常相似(Windows Server上另一個方便的工具)。 https://azure.microsoft.com/en-us/services/scheduler/ 你只需要將所有的邏輯放在你的應用程序中就失敗了,並確保記錄你需要的東西以確保工作順利進行。 – godfathr