当前位置: 首页 > 知识库问答 >
问题:

如何配置Airflow dag在每天的特定时间运行?

王骏
2023-03-14

如何将Airflow dag配置为每天在指定时间执行,无论发生什么,就像crons一样。

我知道使用 TimeSensor 可以获得类似的行为,但在这种情况下,这取决于传感器任务,并且可能与 dag 执行时间冲突。

示例:对于传感器方法,如果我让传感器在0小时15分钟运行,但如果dag在稍后执行,则我的任务会延迟,因此即使对于传感器方法,我也需要确保Dag在正确的时间执行。

那么如何确保Dag在指定的时间执行呢?

共有3个答案

翁俊良
2023-03-14

实例化DAG时,可以将schedule_interval设置为字符串cron表达式:

schedule_interval='0 * * * *'

底座操作员留档

盖锐
2023-03-14

@如虹我在一个评论里看到你在疑惑隔天怎么办。月份是第三个参数,如果您执行< code>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
翟宾实
2023-03-14

例如,若要在每天凌晨 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 * * *')

配置计划之前,可以在https://crontab.guru/验证和测试cron间隔的解释

 类似资料:
  • 现在我每天下午3点运行我的cron作业 但是我想一天运行两次cron作业。上午10点30分和下午2点30分 我相信此命令将在上午 10:30 运行。我应该如何在下午 2:30 运行它?

  • 问题内容: 我想每天早上5点执行某项任务。因此,我决定使用它,但到目前为止,我已经看到了一些示例,这些示例显示了如何每隔几分钟运行一次任务。 而且我找不到任何示例来说明如何每天在特定时间(上午5点)每天运行任务,并且还考虑了夏时制的事实- 以下是我的代码,每15分钟运行一次- 有什么办法,我可以考虑兼顾夏时制的事实,安排一个任务在每天的凌晨5点运行? 而且对于这个还是更好? 问题答案: 与当前的J

  • 我正在寻找一种方法,在kubernetes上部署一个pod,每天运行几个小时。本质上,我希望它每天早上8点运行,并继续运行到下午5:30左右。 我已经研究了很多,还没有找到一种在考虑特定时间框架的情况下部署pod的方法。我找到了cron作业,但这似乎是为了终止自己的pod,而我的应该不断运行。 有没有办法以这种方式在kubernetes上部署我的pod?还是我应该设置pod本身以根据其内部时钟运行

  • 我一直在尝试让我的不和谐机器人每天在特定时间运行一个功能。目前,机器人每24小时可以做一些事情,所以我需要做的就是让它在特定时间启动。但是,我不知道为什么我不能让它工作。我尝试了多种解决方案,使用时间表、aioscheduler等。我尝试了其他时候的解决方案,这个问题被问到,但我无法让它们工作。 目前,机器人运行,它没有抛出任何错误,但函数roletask()似乎从未被调用。((出于测试目的,Ro

  • 我在使用discord。py创建一个discord机器人,我需要每天在特定的时间执行某些操作。我看到了这个答案:如何在不和谐中循环。py重写?到目前为止,我一直在使用它。 当我在heroku免费计划上托管我的机器人时,问题就开始了。Heroku上的服务器每天至少重置一次,这会弄乱计时器,如该帖子所示。 我还看到了日程库。这个的问题是它似乎使用了一个无限循环。这不会阻止我在24小时内运行其他任何东西

  • 问题内容: 我是Java的新手,我已经开始从事一个项目。但是,我遇到了一个障碍。我需要一种在一天中的特定时间运行的方法。我已经做了很多搜索,但是找不到任何可以解决问题的方法。我遇到了Timer类,但它似乎以一定的间隔运行。Scheduler类似乎也有同样的问题。我也遇到过Quartz,但是我认为我需要更轻巧的东西,而且只能隔一段时间看一下如何做。 也许只是因为我是新手,所以我错过了一些可以在这些课