【发布时间】:2014-08-21 07:22:41
【问题描述】:
Azure Web Jobs 可以节省大量时间,因为它们解决了触发器、连续运行、仪表板等问题。但我只看到它们在网站中运行。能够将他们转移到工人角色会很棒。你有关于如何做的建议吗? 我个人很想看看他们是如何实现它的,这样我就可以在我的工人角色中复制它,而无需重新发明轮子......
【问题讨论】:
标签: azure azure-worker-roles azure-webjobs
Azure Web Jobs 可以节省大量时间,因为它们解决了触发器、连续运行、仪表板等问题。但我只看到它们在网站中运行。能够将他们转移到工人角色会很棒。你有关于如何做的建议吗? 我个人很想看看他们是如何实现它的,这样我就可以在我的工人角色中复制它,而无需重新发明轮子......
【问题讨论】:
标签: azure azure-worker-roles azure-webjobs
主要问题的答案是否 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 将来可能会开源)。
【讨论】:
是的,您可以在 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。只需一点点工作,这也应该在 Worker 角色中起作用。
我会声明我自己并没有真正做到这一点,但 SDK 确实使这成为可能。
【讨论】: