Azure webjobs vs调度器
一个非常简单的问题:Azure webjobs vs调度器,azure,azure-webjobs,azure-scheduler,Azure,Azure Webjobs,Azure Scheduler,一个非常简单的问题: 如果Azure WebJobs是免费的,为什么会有人使用Azure调度程序? 我找不到任何关于“azure webjobs vs azure scheduler”的主题 主要区别在于webjob包含调度器可以执行的所有操作: 调度程序可以进行HTTP调用 WebJob可以做到这一点,甚至更多(运行SQL命令等) Web作业的实际调度位构建在调度程序之上。当您在后台的日程表上设置Web作业时,它使用调度程序启动它。WebJobs提供了一个很好的小位置来承载执行的代码。事实上
如果Azure WebJobs是免费的,为什么会有人使用Azure调度程序? 我找不到任何关于“azure webjobs vs azure scheduler”的主题 主要区别在于webjob包含调度器可以执行的所有操作:
- 调度程序可以进行HTTP调用
- WebJob可以做到这一点,甚至更多(运行SQL命令等)
2016年。下面的答案不再准确 WebJobs现在也有一个内置的调度程序,该调度程序可以由cron表达式定义 发布到Azure时,您可以选择是由计划程序还是由WebJob内部计划程序触发WebJob
重要提示:Azure调度程序对1小时或1分钟的频率有限制,具体取决于是否付费。但是,对于内部调度程序,您的应用程序服务需要始终打开才能继续运行并启动作业。此“始终打开”状态可能会影响您的定价。对于从版本2开始的Web作业,没有理由再使用Azure调度程序。事实上,Azure门户已经将此功能标记为(遗留) WebJob SDK v2中引入了额外的触发器,其中一个是TimerTrigger,它与CRON表达式一起工作以调度执行。此执行模式不需要任何其他Azure构造,您只需将webapp设置为AlwaysOn即可保证webjob运行
另一个与TimerTriggers配合使用的azure服务是azure功能,它构建在WebJob SDK之上,允许无服务器执行。我觉得没有意义的是,调度程序的空闲模式的频率限制为1小时(即:每1小时执行一次任务)。更高的频率(如1分钟、5分钟等)不是免费的。有了webjobs,你可以有一个连续的任务,它是免费的……连续的任务在网站上运行,调度器不会不断地调用它。它旋转起来,然后离开去跑。这就像您在Windows Server上创建一个任务调度程序来按计划启动,而不是在启动时启动一个不退出的可执行文件。一个需要外部输入/触发器来执行(计划的输入/触发器),另一个则不需要。连续作业始终在所有实例上运行。计划作业按其计划启动,并随机发送到实例以运行(负载平衡器最终选择要在其上运行的实例)。@sports我不确定我是否完全理解您为什么对成本和频率感到困惑。但是在你的免费/共享站点上持续运行的webjobs只在站点运行时运行,显然是20分钟一次。计算成本仍然是根据您的站点的运行状态(免费/共享/保留)计算的,作业只是计算能力的另一个消费者。可靠调度的作业需要某些服务在给定时间启动任务的保证正常运行时间,因此高频作业的成本较高。WebJob与其相应的调度程序条目之间的关联是否可以通过API发现?(我正在做一些自动化工作,发现这一点可能会很有用。)管理门户如何知道特定的调度程序作业是特定WebJob的作业?好的,但我想在WebJob中调用我的API端点如何做?我上传了一个带有curl?的.php文件,所以如果我用cron表达式创建一个触发的web作业,它仍然是免费的?是你付钱买的吗?我有点困惑。创建作业时没有太多的选项或解释:@ernest-Web作业是“免费”的,无论它们是触发的还是持续的,因为(我认为)它们使用的资源与您的Web应用程序使用的资源相同。但是,如果您希望作业始终运行,则web应用本身需要设置为“始终打开”(因为默认情况下,它们在不活动后关闭),这可以通过Azure门户中的应用设置完成。但是,“始终开启”仅在基本、标准和高级web应用程序层上可用。没有一个是免费的。希望有帮助。