如何在ASP.NET中执行计划任务?

时间:2014-11-12 15:25:02

标签: asp.net browser text-based

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

1 个答案:

答案 0 :(得分: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 Scheduler)。
  • 如果要在Azure中部署Web,请创建Web作业项目。

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