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