C# 服务器超时/延迟触发器

C# 服务器超时/延迟触发器,c#,sql-server,asp.net-mvc-3,C#,Sql Server,Asp.net Mvc 3,我在asp.net游戏上工作,在那里我需要一些东西,比如延迟触发器,它不存在或者在服务器端运行线程 使用过的工具: mssql 2008快车 asp.net mvc3剃须刀 简单地说,我正在尝试做类似travian或其他网络浏览器游戏的游戏,但我被攻击卡住了。第一个玩家需要训练单位。然后他可以选择敌方玩家并分配单位进行攻击。然后开始攻击,经过一段时间后,当部队到达地图上敌方玩家的位置时,应进行评估。 我不知道在这段时间后如何调用该方法,因为即使用户在声明攻击后关闭浏览器,也必须调用该方法 我发现

我在asp.net游戏上工作,在那里我需要一些东西,比如延迟触发器,它不存在或者在服务器端运行线程

使用过的工具: mssql 2008快车 asp.net mvc3剃须刀

简单地说,我正在尝试做类似travian或其他网络浏览器游戏的游戏,但我被攻击卡住了。第一个玩家需要训练单位。然后他可以选择敌方玩家并分配单位进行攻击。然后开始攻击,经过一段时间后,当部队到达地图上敌方玩家的位置时,应进行评估。 我不知道在这段时间后如何调用该方法,因为即使用户在声明攻击后关闭浏览器,也必须调用该方法

我发现mssql WAITFOR,但它不适合,因为可能存在多进程攻击

最好的解决方案是,如果我能在服务器端制作类似于工作线程的东西,。这将检查是否有任何攻击单位到达敌方玩家,并计算战斗

感谢您的回复

我认为您希望安排作业或任务,这些作业或任务将在到期时被跟踪和执行。您可以从零开始提出解决方案,但这是一个非常常见的问题,因此您可以寻找一个适合您需要的调度库。看一看

要确定适合您的具体案例的最佳解决方案,请考虑以下要求:

如果服务器重新启动,是否要保留计划的作业,这些作业是否能在重新启动后继续存在?我想是的。 您是否需要active agent进程、线程等,以便在作业到期时自动执行作业(例如,立即发送通知电子邮件),或者在任何受影响的用户返回时执行/评估作业,并在您为用户执行某些操作时按需轮询其状态执行情况是否足够。 如果你需要一个活动代理,你必须找到一个好地方来托管它。它可以是SQL Server代理,也可以是windows服务。代理也可以存在于web应用程序中,前提是您可以假设web应用程序始终由玩家使用,因此始终保持活动状态,或者作业在到期时立即执行并不那么重要。
该项目托管在远程服务器托管服务器上,我没有选择在其上运行这样的程序。我更喜欢mssql服务器本身支持的东西。那么为什么不在web应用程序中运行调度程序呢?最小间隔是5分钟,我需要以秒为单位的精度