[英]Asp.Net - Offload processing to external application
我有一个asp.net网站,使用第三方exe处理请求。 目前我的工作流程是
用户使用任何浏览器访问网站,并填写包含作业详细信息的表单
网站调用WCF自托管Windows服务,该服务正在侦听端口
Windows服务启动第三方exe来处理作业并将结果返回给网站
网站将返回的结果显示给用户
上面的网站是一个原型,现在需要转变为生产就绪部署。 我意识到上述架构有许多可能会破坏的点。 例如,如果机器电源关闭或者Windows服务崩溃并且不再监听端口,则所有当前请求都将停止处理。 为了使架构更加健壮,我正在考虑以下内容
用户使用任何浏览器访问网站,并填写包含作业详细信息的表单
网站将作业详细信息写入数据库
为新作业每10秒轮询一次数据库的Windows服务将获取作业并使用第三方应用程序执行该作业。 结果将写回数据库。
现在已经开始轮询数据库的网站,获取结果并将其显示给用户。
第二种体系结构为我提供了更多的日志记录功能,如果它们在队列中,则可以再次启动作业。 然而,它涉及大量的轮询,可能无法扩展。 有谁能推荐更好的架构?
我在我的一个应用程序中实现了相同的架构,用户正在处理多个请求。 所以我有 -
而不是轮询我会选择MSMQ或RabbitMQ 。
这样,您可以将处理卸载到队列的多个使用者(可能是Web服务器的不同服务器),并且并行处理更多请求。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.