2011-08-17 158 views
0

iam在asp.net遊戲上工作,我需要延遲觸發器(它不存在)或在服務器端運行線程。服務器超時/延遲觸發

常用的工具: MSSQL 2008 Express的 asp.net MVC3(剃刀)

簡單的我想要做的遊戲像TRAVIAN或其他一些網頁瀏覽器的遊戲,但IAM套牢攻擊

。第一名球員需要訓練單位。然後他可以挑選敵方玩家並指派單位進行攻擊。然後攻擊開始,並在一段時間後進行評估(當單位到達地圖上的敵方玩家位置時)。 我不知道如何在這段時間後調用方法,即使用戶在聲明攻擊後關閉瀏覽器也必須調用它。

我發現了mssql WAITFOR,但它不適合,因爲可能有多個進程(攻擊)。

最好的解決方案將是,如果我可以做一些像在服務器端的工作線程。這將檢查是否有任何攻擊單位到達敵方玩家並且應該計算戰鬥。

感謝爲你回覆

回答

0

我想你想時間表工作崗位或將被跟蹤,當他們因執行任務。你可以從頭開始尋找一個解決方案,但這是一個很常見的問題,所以你可以尋找一個適合你需求的調度庫。例如。看看http://quartznet.sourceforge.net/

決定什麼是對你的具體情況下的最佳解決方案去想想以下要求:

  • 你想堅持計劃的作業(如果你的服務器重新啓動後,應在工作生存的重啓)?我承認是的。
  • 您是否需要活動的「代理」(進程,線程等)在到期時自動執行作業(例如,立即發送通知電子郵件),還是足以在任何時候執行/評估作業的受影響用戶回來並調查他們的狀態(當您爲用戶執行任何操作時按需執行)。
  • 如果您需要一個活躍的代理商,您必須找到一個託管該代理商的好地方。它可以是SQL Server Agent,它可以是一個Windows服務。如果您可以假設網絡應用程序總是被玩家「使用」並因此保持活躍狀態​​,那麼「代理程序」也可以存在於Web應用程序中,或者無論如何,這些作業「立即」執行並非如此關鍵他們到期了。
+0

該項目託管在遠程服務器(託管服務器),我沒有選擇運行這樣的程序。我寧願支持mssql服務器本身的東西。 – Mat

+0

爲什麼不在web應用程序中運行調度程序呢? –

+0

最小間隔是5分鐘,我需要秒精度 – Mat