Azure webjobs vs scheduler

时间:2014-03-17 18:46:23

标签: azure azure-webjobs azure-scheduler

一个非常简单的问题:
如果Azure WebJobs是免费的,为什么有人会使用Azure Scheduler?

我找不到任何关于" azure webjobs vs azure scheduler"

的话题

主要区别在于webjob包含调度程序可以执行的所有操作:

  • 调度程序可以进行HTTP调用
  • WebJob可以做到这一点以及更多(运行SQL命令等)

4 个答案:

答案 0 :(得分:30)

WebJobs的实际调度位建立在调度程序之上。当您按计划安排Web作业时,它会使用调度程序将其启动。 WebJobs提供了一个很好的小位置来托管执行的代码。事实上,如果您为网站创建WebJobs,请查看门户网站上的调度程序,您也会在其中看到它们。

另请注意,调度程序可以调用其他未运行Azure的系统。如果您在Cloud Service中运行需要定期调用的东西,或者即使某些东西托管在其他地方(另一个提供商或内部),也可以在调度程序中进行设置。

关于成本方面,调度程序还有一个免费层:http://www.windowsazure.com/en-us/pricing/details/scheduler/

答案 1 :(得分:15)

2016年。以下答案不再准确。

WebJobs现在还有一个内置的调度程序,并且可以通过cron表达式来定义计划。

发布到Azure时,您可以选择是否要让Scheduler或WebJob内部调度程序启动WebJob。

重要说明: Azure计划程序的频率限制为1小时或1分钟,具体取决于是否付费。但是,对于内部计划程序,您的App Service要求Always On继续运行并解雇作业。此永远在线状态可能会影响您的定价。

答案 2 :(得分:11)

  1. 监视连续作业,如果它们退出则重新执行。通过这种方式,他们更像是"服务"在你的本地机器上。有一个模块可以监控并保持您的应用程序正常运行。 Always-ON是一项功能,可以帮助您的网站保持活力,从而使您的网络工作能够持续运行。

  2. 调度程序用于触发webjobs。它使用调度程序用户帐户(而不是后端帐户)。这样您就可以退出调度程序的免费层,注册更高层以满足您的需求。但实际上,所有调度程序正在执行的操作是访问https端点(这是公开的,但需要您的身份验证)。

  3. https调用会调用已触发的作业(已计划和按需)。这些调用是负载平衡的 - 与具有许多实例的Web应用程序负载平衡的方式非常相似。默认情况下,连续作业会同时运行,但可以设置为单例。

答案 3 :(得分:0)

对于从版本2开始的Webjob,不再需要使用Azure Scheduler。实际上,Azure门户已经将该功能标记为(旧版)。

从WebJob SDK v2开始,引入了其他触发器,其中之一是TimerTrigger,它与CRON表达式配合使用以调度执行。这种执行模式不需要任何其他Azure构造,您只需要将Web应用程序设置为AlwaysOn即可保证Web作业能够运行。

与TimerTriggers一起使用的另一项Azure服务是Azure Functions,它建立在WebJob SDK的基础之上,该SDK允许无服务器执行。