队列处理解决方案替换计划任务

时间:2015-01-22 03:24:52

标签: asp.net-mvc-4 message-queue background-process servicebus service-broker

在发布SO之前,我发布在forums.asp.net但没有得到有用的回复。

我有MVC网络应用程序&一个C#控制台应用程序。

我的用户将照片上传到我们的网络服务器&上传在DB中排队的详细信息。控制台从DB Queue读取并通过进程管道,例如:

重新格式化文件(运行bat命令),在数据库中创建条目(MongoDB),发布文件并发送用户电子邮件通知(以及其他人)

目前我们有一个C#控制台应用程序,计划每5分钟运行一次。

计划任务的问题: 1)用户文件没有立即处理,因为它必须等待下一次运行

2)大文件处理时间可能超过5分钟

3)我希望多个线程并行访问和处理队列

4)更好的错误处理

像这样:https://msdn.microsoft.com/en-us/library/azure/hh367520.aspx

但我的应用程序不会在Azure云中运行。

在.NET MVC应用程序中是否有可用于执行此操作的库(开源)?

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

Windows服务器的服务总线(https://msdn.microsoft.com/en-us/library/dn282144.aspx)实际上是本地服务器的天蓝色总线,可以根据您的问题找到您想要的内容。

还有其他消息技术可以使用MSMQ,ZeroMQ,RabbitMQ,RhinoBus,每个都有自己的优点和缺点。就个人而言,我发现服务总线是一个强大的,可配置的排队系统,但根据您的需要可能会有点过头。查看http://queues.io/以获取相当长的选项列表。