.net - 连续加工

标签 .net architecture

我正在寻找关于如何最好地拥有一个持续运行的处理引擎来处理作业队列的建议。

基本上,外部客户端可以将作业添加到队列(通过 .net 或 WCF 调用)。 这需要快速返回并且会经常被调用,所以它只是接收请求并将其添加到队列中。

处理引擎应该是一个单一的进程,持续运行并根据一堆业务逻辑按顺序处理队列(不被直接调用)。

我们如何才能最好地创建这个持续运行的流程?

  • 是否可以在 asp.net 中稳定地执行此操作?
  • 作为 Windows 服务托管的 WCF 来执行此操作会更好吗?
  • 实现此目标的其他建议或方法?

感谢阅读本文,感谢您的帮助和建议

注意:

我一直在使用 MSMQ 来传递数据。 无论如何,您是否可以在收到消息时自动调用一个进程来运行(或者如果 MSMQ 队列中有消息(我对 MSMQ 了解不多))。

例如客户端A通过队列Q向客户端B发送MSMQ消息,Q为空。客户端 B 现在在 Q 中有一条消息。

我如何调用一个方法来处理这个?如何承载接收消息的客户端?

最佳答案

将处理队列的 Windows 服务是执行此操作的经典方法。它有很多好处,包括重新启动的能力、良好的管理脚本 (WMI),因此它也将成为系统管理员的首选。

将它与您的 WCF 服务分开 - 您应该使用它来将作业放入队列。

关于.net - 连续加工,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5129352/

相关文章:

java - 这是什么意思以及如何修复 SonarQube Java 问题 "Cycles between packages should be removed"(鱿鱼 :CycleBetweenPackages)

angular - 将 SCSS 与 Angular 2/4 结合使用的架构

c# - NServiceBus - 基于内容的路由和审计 - 我的方法可以吗?

testing - 在 golang 应用程序中组织测试并避免导入循环 hell

c# - 静态变量是线程安全的吗? C#

c# - 处理需要自动值的值类型的最佳方式?

c# - 如何在 C# 程序的面板中运行另一个应用程序?

.net - 如何在 .Net 字符串中写入 ASCII 特殊字符

c# - 使用 Microsoft.ApplicationInsights.NLogTarget 的 Azure Application Insights 中没有日志条目

testing - 测试系统架构可用性设计的工具