0

我在 ASP.NET 中编写基于文本的 Web 浏览器游戏。但我需要一点信息,所以我决定在这里问。当用户输入任何任务时,假设该任务需要 10 分钟才能进行。如果用户退出游戏,我怎样才能让我的脚本自动运行并完成任务并升级玩家力量等?我听说过类似 CronJob 的东西。但我不知道它是否适用于 ASP.NET,所以在我这样做之前我想听听任何想法。谢谢您的帮助。

4

1 回答 1

2

您可以只添加一个带有回调函数的缓存项。

public void SomeMethod() {
    var onRemove = new CacheItemRemovedCallback(this.RemovedCallback);   
    Cache.Add("UserId_QuestId", "AnyValueYouMightNeed", null, DateTime.Now.AddMinutes(10), Cache.NoSlidingExpiration, CacheItemPriority.High, onRemove);
}

public void RemovedCallback(String key, Object value, CacheItemRemovedReason r){
   // Your code here
}

缓存项的有效期为 10 分钟,一旦从内存中删除,将调用 RemovedCallback。


注意:只是为了完全回答您的问题:

  • 您还可以使用一些可用的框架来安排 asp.net 中的任务(例如 Quartz.net)。
  • 在您的解决方案中创建一个控制台项目并将其安排在 Web 服务器上(使用 Windows 调度程序)。
  • 如果要在 Azure 中部署 Web,请创建一个 Web 作业项目。

但是在您的情况下,使用缓存可能是最简单的解决方案。

于 2014-11-12T15:32:46.267 回答