繁体   English   中英

在ASP.NET MVC中计划徽章更新任务过程

[英]Schedule badge update task process in asp.net mvc

我发现了有关实现批量更新授予徽章的代码,如下所示。 但是,我不知道如何在asp.net MVC中实现这一点。 据我所知,该实现应在MVC的global.asax文件中完成。 我应该如何在global.asax文件中触发它?

 public abstract class BadgeJob { protected BadgeJob() { //start cycling on initialization Insert(); } //override to provide specific badge logic protected abstract void AwardBadges(); //how long to wait between iterations protected abstract TimeSpan Interval { get; } private void Callback(string key, object value, CacheItemRemovedReason reason) { if (reason == CacheItemRemovedReason.Expired) { this.AwardBadges(); this.Insert(); } } private void Insert() { HttpRuntime.Cache.Add(this.GetType().ToString(), this, null, Cache.NoAbsoluteExpiration, this.Interval, CacheItemPriority.Normal, this.Callback); } } public class CommenterBadge : BadgeJob { public CommenterBadge() : base() { } protected override void AwardBadges() { //select all users who have more than x comments //and dont have the commenter badge //add badges } //run every 10 minutes protected override TimeSpan Interval { get { return new TimeSpan(0,10,0); } } } 

恕我直言和经验,不可能并且不建议从Web上下文执行批处理作业或任务。 始终建议您从Web上下文中在db中进行输入。下一步将是使用Windows服务来获取数据和处理,您也可以参考Quartz.net来完成此任务。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM