NServiceBus适用于周期性任务的负载分配

时间:2010-11-16 23:04:12

标签: scalability scheduled-tasks nservicebus esb fault-tolerance

NServiceBus或等效的ESB是否适合具有大量不同类型的后台维护类型任务的应用程序?例如:

  • 扫描数据库以查找用户生成内容中某些单词的出现
  • 更新存储相对昂贵查询结果的数据库表
  • 为内容创建/维护外部索引
  • 发送预定活动的活动通知电子邮件。

我的想法是使用某种任务调度程序(Windows内置程序,Quartz.NET或我自己的基于数据库的解决方案)定期将不同类型的消息发布到总线上。这段时间可能短至一分钟或长达一天。我想使用总线的原因是,随着系统变得更大和更繁忙以及任务变得更频繁或更加资源密集,我可以扩展用户数量。只要我总是至少有两个用户在运行,它也会提供冗余。

显而易见的替代方案是编写由调度​​程序触发并执行工作的我自己的Windows服务,但我觉得将该规模超出单个机器并提供容错可能比使用ESB更难就像那个管道。

这听起来像是一种合理的做法吗?替代建议?

TIA

1 个答案:

答案 0 :(得分:2)

作为NServiceBus的作者,我很可能有偏见,但在学习新技术和编写(可能是更简单的版本)之间需要权衡。我建议考虑自己的解决方案的长期维护(和文档)成本与内部编写的成本相比。

就您所描述的功能集而言,NServiceBus确实提供了所有这些功能。