C#-ASP.Net体系结构解决方案/建议
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#-ASP.Net体系结构解决方案/建议,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2049字,纯文字阅读大概需要3分钟。
内容图文
![C#-ASP.Net体系结构解决方案/建议](/upload/InfoBanner/zyjiaocheng/662/8e24434300854d23b73d334378a294b6.jpg)
作为应用程序体系结构的一部分,我们有3个组件: ASP.Net Web,WCF服务和Windows服务.
>调用WCF执行任务的ASP.Net Web应用程序.
> WCF实习生触发正在运行的Windows服务来执行任务. Windows服务实习生会打开多个线程来执行任务.
> Windows服务使用任务的进度状态更新数据库,并且Web应用程序将状态更新读取给用户.
Web应用程序是由单独的团队开发的,而其他团队则负责WCF和Windows服务.
之所以开发Windows服务而不仅仅是WCF是由于需要在任务完成过程中打开多个线程.由于WCF只能用作火灾,并且会从Web应用程序中遗忘,因此其他团队决定使用Windows Service.同样(根据其他小组的研究),退出WCF中的任务时,不可能关闭所有线程.
>这是一个好的架构吗?
>可以通过WCF调用Windows服务来执行任务吗?
>是否可以在不使用Windows服务的情况下构造此应用程序?
解决方法:
Is this a good architecture?
同意其他评论者的意见,您可以使用hangfire之类的东西在ASP.NET中完成整个解决方案,以处理后台任务.
我在当前项目中已使用此框架来处理各种类型的长时间运行的任务,并且坚如磐石,特别是与某种客户端通知库(如angular toasty)结合使用时,它可以指示后台任务的状态.
Is it OK to call windows service to perform the task from WCF?
从技术上讲,这没有什么不对劲的,但是您最好将WCF服务托管在Windows服务中,而不是将它们分开.只是另一个动静部分,没有任何实际收益.
Is it possible to architect this application without using windows
service ?
往上看.
来自评论:
Unfortunately the task that gets initiated from asp.net application
might go on from 10 minutes to 1+ hr
我们的某些后台任务耗时超过30分钟,尽管没有一项花费一个小时.尽管不能保证IIS辅助线程会徘徊足够长的时间来完成任务,但是hangfire提供了一个铁腕保证,即无意中卸载的任务将重新运行并最终会成功.这是自动的,不需要额外的配置.
also user needs to get status update on progress of the task.
就像我在原始答案中所说的那样,我们正在通过客户端轮询实时提供状态指示(作业类型,经过的时间,预期的完成时间等).我们实际上轮询了hangfire数据库(不是推荐的方法,但是对我们来说足够安全),但是您也可以在内存中单击hangfire作业管理器以检索此信息(这是推荐的方法).
Looks like HangFire is more like fire and forget
Hangfire绝对是一劳永逸的事情,但这就是使它健壮的原因,并且应该是任何后台任务运行程序实现的功能.在我看来,等待某种完成回调事件是棘手且不愉快的.
内容总结
以上是互联网集市为您收集整理的C#-ASP.Net体系结构解决方案/建议全部内容,希望文章能够帮你解决C#-ASP.Net体系结构解决方案/建议所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。