【发布时间】:2010-11-17 14:42:09
【问题描述】:
NServiceBus 或等效的 ESB 是否适合具有大量不同类型的后台维护类型任务的应用程序?例如:
- 扫描数据库以查找用户生成的内容中出现的某些单词
- 更新存储相对昂贵查询结果的数据库表
- 为内容创建/维护外部索引
- 为已安排的活动发送活动通知电子邮件。
我的想法是使用某种任务调度程序(Windows 内置程序、Quartz.NET 或我自己的基于数据库的解决方案)定期将不同类型的消息发布到总线上。时间可以短至一分钟,也可以长至几天。我想使用总线的原因是我可以随着系统变得更大、更繁忙以及任务变得更加频繁或资源密集型而扩展订阅者的数量。只要我始终至少有两个订阅者在运行,它也会提供冗余。
对此的明显替代方案是编写我自己的 Windows 服务,该服务由调度程序触发并执行工作,但我觉得使这种规模超出单台机器并提供容错可能比使用 ESB 更困难就像那个管道一样。
这听起来像是一种合理的方法吗?替代建议?
TIA
【问题讨论】:
标签: scalability scheduled-tasks nservicebus esb fault-tolerance