Windows服务应用程序可用于创建具有自己会话的长时间运行的应用程序.它们可以在后台运行而不会干扰主要(或业务线)应用程序.在Azure上运行这些应用程序的方法可以通过启动任务定义与实际角色一起完成(参见1,2).
另一方面,工作者角色本身一直在后台工作,就像长时间运行的任务一样.在RoleEntryPoint定义之上,我可以更轻松地处理启动,停止和运行过程(OnStart(),OnStop()和Run()方法).实际上,该角色还提供了更新实时配置的功能.此外,还提供了性能指标.同样,您可以在提升模式下运行辅助角色.
在这方面,如果我们比较在Windows服务上运行后台任务以及另一个角色与单独的工作者角色,后一种方法似乎是有利的.仍然有理由与前者合作吗?如果是这样,有什么好处?
让我们说这里的任务是监控.后台任务将收集在其他角色上运行的应用程序输出的ETW事件,并将它们保存到持久性存储中.
解决方法:
这两者并不相互排斥.您仍然可以安装Windows服务,即使是在辅助角色中也是如此(特别是如果软件ID专门设计用于运行并以这种方式进行管理).要在工作者(或Web)角色中执行此操作,您只需捆绑(或下载)相应的安装程序即可设置您的服务.
worker / web角色脚手架本身允许您在Windows VM中运行几乎任何东西.不要把它当作一个后台任务.您可以使用完整的VM.您需要通过启动cmd脚本和/或OnStart()来设置内容.并且您需要通过处理Run()来管理VM实例的生命周期(以防止重新启动).您可以启动线程,设置并行任务,等等.
现在:无论您选择编写新服务还是仅依靠Web / worker脚手架:这取决于您和您的特定应用程序,我不想将此作为主观/基于意见的答案.
原文地址:https://codeday.me/bug/20190623/1275340.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。