asp.net-mvc – ASP.NET MVC重复任务

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – ASP.NET MVC重复任务前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要在ASP.NET MVC站点上重复运行一个任务;它需要每个时间间隔运行(间隔无关紧要).

我通过设置运行任务的Global.asax.cs Application_Start中的后台线程来实现这一点,睡眠时间间隔然后再次运行….

虽然这样做似乎不是正确的方法,看起来有点hacky.

所以我用Timer对象替换它,这不能可靠地工作 – 似乎其他人也遇到了问题 – 所以我不打算用它.

这需要在MVC站点中运行,它用于从队列中提取作业并从Views中呈现它们以便发送电子邮件.

我考虑过使用ThreadPool并让前一个工作留下另一份工作,但是因为这些工作可能是长时间运行的工作,我已经读到这可能最终没有留下足够的线程来通过饥饿来处理Web请求.

在坚持使用原始线程方法之前,我想我会问其他人是否知道更好的方法.

我希望这是有道理的.实际上,我想要实现的是心跳.在MVC站点中充当生产者/消费者模式的消费者部分的东西.

解决方法

Stackoverflow本身使用(或至少习惯使用)这种方法的巧妙方式.见: http://blog.stackoverflow.com/2008/07/easy-background-tasks-in-aspnet/

简而言之,你这样做:

  1. At startup,add an item to the HttpRuntime.Cache with a fixed
    expiration.

  2. When cache item expires,do your work,such as WebRequest or what have
    you.

  3. Re-add the item to the cache with a fixed expiration.

猜你在找的asp.Net相关文章