6

谁能解释 Azure Web Jobs 和 Azure Scheduler 之间的区别

4

2 回答 2

5

Azure Web 作业

  1. 仅在 Azure 网站上可用
  2. 它用于以特定间隔运行代码。例如,每天一个控制台应用程序
  3. 用于触发和运行工作负载。
  4. 主要推荐用于随网站扩展或相对较小的工作负载。
  5. 如果选择“始终开启”,则可以持续运行,否则您将获得 20 分钟超时。
  6. 需要运行和调度的代码是一起定义的。

Azure 调度程序

  1. 不绑定到网站或云服务
  2. 它允许您调用网站或将消息添加到存储队列
  3. 用于触发事件或触发小型工作负载(例如添加到队列),通常用于触发更大的工作负载
  4. 主要推荐用于触发更复杂的工作负载。
  5. 这只是一个触发器,监听触发事件(例如队列)的单独函数需要单独编码。

对于许多实例,我更喜欢使用调度程序推送到存储队列,并且每个实例上的工作人员角色都会离开队列。这样可以对任务进行精细控制,并且还可以在您的网站之外按比例上下移动。

使用 WebJobs,它们会随着您的网站进行扩展和缩减,因此如果您的网站流量较低且缩减规模,您的后台任务可能会变得负担过重。

于 2014-06-25T13:25:01.807 回答
4

Azure 调度程序- 提供了一种以明确定义的时间表轻松安排 http 调用的方法,例如每小时、每周五上午 9:00、每天一次……

Azure WebJobs - 提供一种在 Azure 网站的相同上下文中运行中小型工作负载(以脚本形式:.exe、.cmd、.sh、.js、...)的方法(但可以托管)即使是一个空的网站)。

虽然 WebJob 可以连续运行(使用具有 while 循环的进程),但 Azure 将确保此 WebJob 始终在运行(设置为“Always On”)。

Azure 调度程序和 Azure WebJobs 之间还有一个集成,其中您有一个 WebJob 正在运行一些有限的工作,而 schduler 负责调度这项工作(调用 WebJob)。

所以总而言之,调度器是关于调度工作的,而 WebJobs 是关于运行工作负载的。

于 2014-06-26T18:19:07.507 回答