【问题标题】:Queue processing solution to replace scheduled task队列处理方案替代定时任务
【发布时间】:2015-01-22 03:24:52
【问题描述】:

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

我有 MVC Web 应用和 C# 控制台应用。

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

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

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

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

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

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

4) 更好的错误处理

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

但我的应用无法在 Azure 云中运行。

我可以在 .NET MVC 应用程序中使用任何库(开源)吗?

我们将不胜感激。

【问题讨论】:

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


    【解决方案1】:

    Windows 服务器 (https://msdn.microsoft.com/en-us/library/dn282144.aspx) 的服务总线实际上是本地服务器的 azure 总线,根据您的问题将是您正在寻找的。​​p>

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

    【讨论】:

    • 我更喜欢一些开源的解决方案库,可以在 Windows 和 Linux 中运行。我还在找……
    • 查看文档,似乎主要是针对 Azure 的,需要相当多的提升
    • 它实际上与 azure 使用的总线完全相同,它们在功率和使用方面是等效的。如果您查看使用其中一个的实现,那么在另一个上几乎相同。存在设置差异,仅此而已。至于开箱即用的开源,请查看 ZeroMQ 和 RabbitMQ。 ZeroMQ 更适用于破解类型的实现,需要一些努力来构建发送方和接收方,但它会完成工作。
    猜你喜欢
    • 2018-03-13
    • 2017-08-27
    • 2023-01-19
    • 1970-01-01
    • 2018-11-01
    • 2011-11-28
    • 2018-10-12
    • 2010-11-30
    • 1970-01-01
    相关资源
    最近更新 更多