在发布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应用程序中是否有可用于执行此操作的库(开源)?
任何帮助将不胜感激。
答案 0 :(得分:1)
Windows服务器的服务总线(https://msdn.microsoft.com/en-us/library/dn282144.aspx)实际上是本地服务器的天蓝色总线,可以根据您的问题找到您想要的内容。
还有其他消息技术可以使用MSMQ,ZeroMQ,RabbitMQ,RhinoBus,每个都有自己的优点和缺点。就个人而言,我发现服务总线是一个强大的,可配置的排队系统,但根据您的需要可能会有点过头。查看http://queues.io/以获取相当长的选项列表。