Azure webjobs vs scheduler

spo*_*rts 33 azure azure-scheduler azure-webjobs

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

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

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

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

Mik*_*eWo 30

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

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

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

  • 对我来说没有意义的是调度程序的自由模式的频率限制为1小时(即:每隔一小时,任务执行).更高的频率(例如1分钟,5分钟等)不是免费的.有了webjobs,你可以有一个连续的任务,它是免费的...... (3认同)
  • @sports我不确定我完全理解为什么你对成本和频率感到困惑.但是,在你的免费/共享网站上连续运行的webjobs仅在网站启动时运行,显然每个[这个] 20分钟(http://blog.amitapple.com/post/73574681678/git-deploy-console-app /#.U5k8_pSwJsg).计算成本仍然计入您的站点运行的任何内容(免费/共享/保留),作业只是该计算容量的另一个消费者.可靠的预定作业需要保证某些服务的正常运行时间以在给定时间启动任务,因此高频率作业的成本较高. (3认同)
  • 连续任务在网站上运行,调度程序不会经常调用它.它旋转起来然后离开了.这就像您在Windows Server上创建任务调度程序以触发计划而不是简单地在启动时启动未退出的可执行文件.一个需要外部输入/触发器来执行(预定的),而另一个则不需要.连续作业始终在所有实例上运行.计划的作业按其计划触发并随机发送到要运行的实例(负载平衡器最终选择要运行它的实例). (2认同)

Sen*_*nel 15

这是2016年.以下答案不再准确.

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

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

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


Jai*_*osa 12

  1. 监视连续作业,如果它们退出,则重新执行.通过这种方式,它们更像是本地计算机中的"服务".有一个模块可以监控并保持您的应用程序正常运行.Always-ON是一项功能,可以帮助您的网站保持活力,因此,您的webjobs将继续运行.

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

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