【问题标题】:Azure: Can I deploy Web Jobs to a Worker Role?Azure:我可以将 Web 作业部署到辅助角色吗?
【发布时间】:2014-08-21 07:22:41
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    主要问题的答案是 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 将来可能会开源)。

    【讨论】:

    • 感谢 kudu 项目的链接。我认为让 Web Jobs 不知道它们的托管位置(网站、工人角色等)是非常有意义的。我敢打赌,Azure 团队最终会朝这个方向发展......
    【解决方案2】:

    是的,您可以在 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 确实使这成为可能。

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

    【讨论】:

    • 您的回答不准确(对主要问题也不正确),请看我的回答。
    • 我当然会听从团队中的某个人的意见,但我认为我们都说同样的话。在您的回答中,您说您可以使用 WebJobs SDK 编写触发 Azure 存储、blob/队列和 Azure 服务总线的代码,并且可以在任何地方。我认为最初的问题只是问这个问题,我认为上面的答案表明了这一点。您是在告诉他使用 SDK,这也是我所说的。我确实看到说他可以在网站之外使用 WebJobs 的措辞有所不同,我相信你会说你可以在网站之外使用 SDK。
    • @Nestor 如果 Amit 提供的答案更符合您的原始问题,请将其标记为答案。
    • @MikeWo 我按照你的建议做了。感谢您在回答中提供的所有重要信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多