按计划运行作业或连续运行作业
可以使用“计划”触发器类型定期运行 Azure Databricks 作业,或者使用“连续”触发器类型来确保始终有一个作业处于实际运行状态。
可以使用计划,以便在指定的时间和时段自动运行 Azure Databricks 作业。 可以定义一个简单的计划来定期运行作业,也可以定义一个使用 cron
为定期计划定义特定时间的高级计划。 对于高级计划,还可以为计划选择时区。 可以随时暂停计划作业。
当你使用连续触发器运行作业时,Azure Databricks 作业确保该作业始终处于活动状态。 如果上一次运行成功完成或处于失败状态,或者当前没有作业实例运行,则会开始新的作业运行。
添加作业计划
计划触发器类型有两个选项:
- 定义基本计划,根据指定的时间单位和时间间隔定期运行作业。 例如,安排一项作业从首次运行的时间开始每十二小时运行一次。
- 定义高级计划,对运行作业的时间段、时间和时区进行更多控制。
若要定义作业的计划,请执行以下操作:
- 在边栏中,单击“工作流”。
- 在“作业”选项卡上的“名称”列中,单击作业名称。
- 在“作业详细信息”面板中,单击“添加触发器”。
- 在“触发器类型”中,选择“计划”。
- 在“计划类型”中,选择“简单”或“高级”。
- 简单:指定运行作业的时间间隔和时间单位。
- 高级:指定时间段、开始时间和时区。 (可选)选中“显示 Cron 语法”复选框以使用 Quartz Cron 语法显示和编辑计划。
- 单击“ 保存”。
还可以直接在笔记本 UI 中计划笔记本作业。
注意
- Azure Databricks 强制实施在作业计划触发的后续运行之间的最小间隔(10 秒),而不考虑 cron 表达式中的秒配置。
- 可以选择一个采用夏令时或 UTC 时间的时区。 如果选择一个采用夏令时的时区,则在夏令时开始或结束时,某个每小时作业可能会被系统跳过,或者会延迟一到两个小时。 若要每小时(绝对时间)运行作业,请选择“UTC”。
- 作业计划程序不适用于低延迟作业。 由于网络或云问题,作业运行的延迟时间有时可能会长达数分钟。 在这些情况下,计划的作业会在服务可用后立即运行。
暂停和恢复作业计划
若要暂停作业,请在“作业详细信息”面板中单击“暂停”。
若要继续暂停的作业计划,请单击“继续”。
运行连续作业
- 在边栏中,单击“工作流”。
- 在“作业”选项卡上的“名称”列中,单击作业名称。
- 在“作业详细信息”面板中单击“添加触发器”,在“触发器类型”中选择“连续”,然后单击“保存”。
若要停止连续作业,请单击“立即运行”旁边的 ,然后单击“停止”。
注意
如何处理连续作业的故障?
Azure Databricks 作业使用指数退避方案来管理具有多个连续失败的连续作业。 指数退避允许连续作业在不暂停的情况下运行,并在发生可恢复失败时返回到正常状态。
当连续作业超过允许的连续失败阈值时,以下描述了如何管理后续作业运行:
- 在系统设置的重试时间过后,将重新启动作业。
- 如果下一个作业运行失败,则重试时间会增加,并在新的重试时间后重新启动作业。
- 对于每个后续的作业运行失败,重试周期都会再次增加,最高可达系统设置的最大重试周期。 达到最大重试周期后,将继续使用最大重试周期重试作业。 连续作业的重试次数没有限制。
- 如果作业运行成功完成并开始新的运行,或者运行超过阈值而没有失败,则认为作业正常,并且回退序列将重置。
可以在作业 UI 中以指数退避状态重新启动连续作业,也可以将作业 ID 传递给 Jobs 2.1 API 中的 POST /api/2.1/jobs/run-now 请求或 Jobs 2.0 API 中的 POST /api/2.0/jobs/run-now 请求。