我是Microsoft Azure的新手,我并没有真正了解云服务中的工作者角色。 Web角色很容易掌握:它们是运行IIS的,因此我不必自己管理它,因此当我部署到Web角色时,我会部署一些在IIS中运行的东西
现在,每个人都说工人角色"它就像Windows服务,它运行在后台"我 直到今天,我从来不需要开发Windows服务,所以也许正因为如此,我没有得到工人角色的重点。
此外,我似乎有人在工作者角色上部署WebAPI应用程序,但是我会在IIS上运行WebAPI,因此它看起来更像是Web角色而非工作者角色。
无论如何,天蓝色工人角色的真实用例是什么?我们什么时候应该使用它?为什么?它的常用例子是什么?
答案 0 :(得分:2)
正如@Thiago所说,有很多用途。
比如想想YouTube。你现在如何实现它...当用户观看和上传视频时,你可能会设置一个前端。
视频上传后,您需要执行一些任务。将其转换为特定格式,查找版权材料,拍摄快照......或其他任何内容。
您绝对不希望在执行此操作时阻止用户,并且您不希望让用户在您执行此操作时打开浏览器。当工作者角色发挥作用时......不需要UI,它不依赖于用户的任何内容,只需运行您需要的进程,并在视频准备就绪时通知用户。他还在吗?向他展示徽章或其他什么,他是否关闭了浏览器?给他发电子邮件。
这只是一个帮助我理解工人角色的例子......希望它也能帮到你
答案 1 :(得分:1)
工作者角色有很多用途。
您可以使用它来发送电子邮件,从天蓝色服务总线队列中取出项目并对其进行处理,您可以自行托管webapi(您不需要IIS)。您可以在表格中插入项目......
答案 2 :(得分:1)
在坚果壳中,
启动任务仅在Web或辅助角色中可用; VM角色无法管理启动任务。 这是您使用Worke角色的原因之一。
基本上,Web角色必须能够提供HTTP内容;但是,工人角色没有这种限制。
理想情况下,您希望通过将工作项插入队列来延迟所有昂贵的事务/工作,并让它们以工作者角色执行,从而使Web角色尽可能具有响应能力。
此外,我似乎有人在工作者角色上部署WebAPI应用程序,但是 WebAPI是我在IIS上运行的东西,所以看起来更多 像网络角色而不是工人角色。
WebAPI可以使用不带IIS的OWIN进行自托管。如果您只想在没有文档的情况下托管WebAPI,可以通过在Worker角色中结合任务来节省资金。