谁能解释 Azure Web Jobs 和 Azure Scheduler 之间的区别
问问题
1500 次
2 回答
5
Azure Web 作业
- 仅在 Azure 网站上可用
- 它用于以特定间隔运行代码。例如,每天一个控制台应用程序
- 用于触发和运行工作负载。
- 主要推荐用于随网站扩展或相对较小的工作负载。
- 如果选择“始终开启”,则可以持续运行,否则您将获得 20 分钟超时。
- 需要运行和调度的代码是一起定义的。
Azure 调度程序
- 不绑定到网站或云服务
- 它允许您调用网站或将消息添加到存储队列
- 用于触发事件或触发小型工作负载(例如添加到队列),通常用于触发更大的工作负载
- 主要推荐用于触发更复杂的工作负载。
- 这只是一个触发器,监听触发事件(例如队列)的单独函数需要单独编码。
对于许多实例,我更喜欢使用调度程序推送到存储队列,并且每个实例上的工作人员角色都会离开队列。这样可以对任务进行精细控制,并且还可以在您的网站之外按比例上下移动。
使用 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 回答