Azure:我可以将Web作业部署到辅助角色吗?

时间:2014-08-20 14:27:00

标签: azure azure-worker-roles azure-webjobs

Azure Web Jobs可以节省大量时间,因为它们可以解决触发器,连续运行,仪表板等问题。但我只看到它们在网站上运行。能够将它们转移到工人角色会很棒。你有关于如何做的建议吗? 我个人很想知道他们是如何实现它的,所以我可以在我的工作角色中复制它,而不需要重新发明轮子......

2 个答案:

答案 0 :(得分:4)

主要问题的答案是 Azure WebJobs是Azure网站的一部分,只能在Azure网站上下文/主机中运行。

但是 Azure WebJobs SDK是一个SDK,允许您编写在Azure存储blob /队列和Azure服务总线队列上触发的代码,包括一些出色的日志记录功能,可以在Azure之外使用WebJobs,因此它们可以在任何地方运行(本地,VM,WebRoles)。

重要的是要了解Azure WebJobs是Azure网站的一部分,允许(几乎)任何控制台应用程序(和.bat,.php,.js,...脚本)连续运行或触发(手动/调度)。

WebJobs SDK和WebJobs虽然可以很好地协同工作,但它们并不相互依赖。

另外,要了解它是如何实现的,请转到https://github.com/projectkudu/kudu,因为它是开源的(目前WebJobs部分,SDK可能会在未来开源)。

答案 1 :(得分:3)

是的,您可以在Azure网站之外使用Azure WebJobs。您可以使用Azure WebJobs SDK执行此操作。关于如何在控制台应用中使用SDK,有一个sample on MSDN。然后它继续在网站上托管它,但你当然可以通过其他方式托管它。还有另一篇文章," Hosting Azure webjobs outside Azure, with the logging benefits from an Azure hosted webjob"明确谈到在Azure之外使用WebJobs。通过一点点工作,这也应该在工人角色中起作用。

我已经规定我自己并没有真正做到这一点,但SDK确实可以实现。

我还推荐这个treasure trove of resources for WebJobs