要求:我需要创建一个后台工作者/任务,它将以特定间隔(即10秒)从外部源(消息队列)获取数据并更新数据库。需要24小时不停地运行。 ASP.NET应用程序将数据放入消息队列。
可能的解决方案:
带有计时器的Windows服务
使用此处描述的方法之一:background task
问题:建议的解决方案是什么?为什么? 我正在寻找基于.net的解决方案。
答案 0 :(得分:0)
除非有充分的理由,否则你不应该使用第二种选择。将后台作业与Web应用程序分离可带来许多优势:
虽然我建议你选择第一个选项我不喜欢计时器的想法。有一个更简单和强大的解决方案。我将使用MSMQ绑定实现WCF服务,因为它为您提供了许多开箱即用的好功能:
我建议阅读this一篇关于WCF + MSMQ服务示例的文章,看看实现一个并使用我上面提到的功能是多么简单。完成WCF服务后,您可以easily host it in a windows service。
希望它有所帮助!