我有一个使用 3rd 方 exe 处理请求的 asp.net 网站。目前我的工作流程是
用户使用任何浏览器访问网站并填写包含工作详细信息的表格
网站调用正在侦听端口的 WCF 自托管 Windows 服务
Windows 服务启动 3rd 方 exe 来处理作业并将结果返回到网站
网站将返回的结果展示给用户
上面的网站是一个原型,现在需要变成一个生产就绪的部署。我意识到上述架构有很多可能会破坏的点。例如,如果机器关闭或 Windows 服务崩溃并且不再侦听端口,则所有当前请求都将停止处理。为了使架构更加健壮,我正在考虑以下内容
用户使用任何浏览器访问网站并填写包含工作详细信息的表格
网站将工作详细信息写入数据库
每 10 秒轮询一次数据库以获取新作业的 Windows 服务会选择该作业并使用第 3 方应用程序执行它。结果被写回数据库。
现在已经开始轮询数据库的网站,获取结果并将其显示给用户。
第二种架构为我提供了更多的日志记录功能,如果它们在队列中,它们可以重新开始。然而,它涉及大量可能不可扩展的轮询。谁能推荐一个更好的架构?