我想爲我的學習做一個基於網絡的遊戲。小時獎勵遊戲
遊戲很簡單:註冊後,你有$ 100,你可以買到讓我們說一棵樹,這棵樹會給你每小時10個蘋果,你可以賣一個蘋果1個$
我的問題是:我如何讓這棵樹每小時減少10個蘋果?我是否需要編寫另一個連接到數據庫並更新所有內容的C#控制檯程序(又名cronjob)?抓住用戶,讓他們的樹木,每小時給他們蘋果?我已經嘗試過這種方式,但它是一個性能問題
我試圖做到這一點,填補我的數據庫與虛擬1000用戶和每個用戶有10000棵樹(所以10000000樹總數),但我的C#程序(所謂的「被稱爲CronJob)正在超過5分鐘,以獎勵與蘋果都是假的玩家
我使用實體框架和foreach循環抓住每一個球員,算上他們的樹,然後把蘋果給他們,並保存數據庫的變化
這種工作應該由db不在代碼中。大多數當前的RDBMS都有某種調度器。 –
@ BarryO'Kane如何在Microsoft SQL Server中執行此操作? – AlekPsk
創建一個存儲過程來更新適當的數據。然後讓SQL Server代理每隔一小時啓動一次SP。有關代理的信息,請參閱此信息https://msdn.microsoft.com/en-us/library/ms191439(v=sql.105).aspx –