无论发生什么,如何将 Airflow dag 配置为每天在指定时间执行,就像 crons 一样。
我知道使用 TimeSensor 可以获得类似的行为,但在这种情况下,它取决于传感器任务,并且可能与 dag 执行时间冲突。
示例:使用传感器方法,如果我有传感器在 0 小时 15 分钟运行,但如果 dag 稍后执行,那么我的任务就会延迟,所以即使是传感器方法,我也需要确保 Dag 在正确的时间执行。
那么如何确保 Dag 在指定时间执行呢?
例如,要在每天凌晨 2:30 开始 DAG,您可以执行以下操作:
DAG(
dag_id='dag_id',
# start date:28-03-2017
start_date= datetime(year=2017, month=3, day=28),
# run this dag at 2 hours 30 min interval from 00:00 28-03-2017
schedule_interval='30 2 * * *')
在配置计划之前,可以在此处验证和测试 cron 间隔的解释:https ://crontab.guru/
@ruhong 我在评论中看到你想知道如何每隔一天做一次。月份是第三个参数,如果你这样做2 30 */2 * *
,它将每隔一天运行一次(凌晨 2:30)。它有时会根据月份来计算它有点奇怪。您可以通过指定范围强制它运行偶数天或奇数天:
# Will only run on odd days:
2 30 1-31/2 * * command
# Will only run on even days:
2 30 2-30/2 * * command