如何在 Apache Airflow 中正确处理夏令时?

2024-03-18

在气流中,一切都应该是 UTC(不受 DST 影响)。

但是,我们的工作流程可以根据受 DST 影响的时区交付内容。

一个示例场景:

  • 我们安排了一项作业,开始日期为东部时间上午 8:00,计划间隔为 24 小时。
  • 每天东部时间上午 8 点,调度程序会看到距离上次运行已经过去 24 小时,并运行作业。
  • 夏令时到来,我们损失了一个小时。
  • 今天东部时间上午 8 点,调度程序发现时间只有 23 小时,因为机器上的时间是 UTC,并且直到东部时间上午 9 点才运行作业,这是一个延迟交付

有没有办法安排 dags,以便它们在时间更改后在正确的时间运行?


我的头顶上浮现出:

如果您的计算机支持时区,请将 DAG 设置为在美国东部时间上午 8 点运行and世界标准时间 (UTC) 东部夏令时间上午 8 点。就像是0 11,12 * * *。第一个任务是短路操作员。然后使用 pytz 之类的工具来本地化当前时间。如果在您要求的时间内,请继续(即:运行 DAG)。否则,返回 False。每天执行 2 个额外任务会产生微小的开销,但只要您的计算机不过载,延迟就应该是最小的。

草率的例子:

from datetime import datetime
from pytz import utc, timezone

# ...

def is8AM(**kwargs):
    ti = kwargs["ti"]
    curtime = utc.localize(datetime.utcnow())
    # If you want to use the exec date:
    # curtime = utc.localize(ti.execution_date)
    eastern = timezone('US/Eastern') # From docs, check your local names
    loc_dt = curtime.astimezone(eastern)
    if loc_dt.hour == 8:
        return True
    return False

start_task = ShortCircuitOperator(
                task_id='check_for_8AM',
                python_callable=is8AM,
                provide_context=True,
                dag=dag
            )

希望这有帮助

编辑:运行时间是错误的,是减去而不是添加。此外,由于跑步的启动方式,如果您希望跑步的话,您最终可能会希望按小时安排在早上 7 点进行run at 8.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Apache Airflow 中正确处理夏令时? 的相关文章

  • 转换时区时注意夏令时

    我有一个 Redshift 数据表 其中所有时间值都存储在 CST 中 并且我根据邮政编码 位置 将时间值转换为相应的时区 当我这样做时 我知道所有时间值都是标准时间 因此我的函数用法是 CASE WHEN convert timezone
  • 如何定义 Airflow 上 STFP Operator 的操作?

    class SFTPOperation object PUT put GET get operation SFTPOperation GET NameError name SFTPOperation is not defined 我在这里定
  • Airflow - 分支连接运算符

    我正在尝试加入 Airflow 中的分支操作员 我这样做了 op1 gt gt op2 op3 op4 op2 gt gt op5 op3 gt gt op6 op4 gt gt op7 op5 op6 op7 gt gt op8 它给出了
  • Airflow连接密码解密

    我想解密气流连接的密码 从连接表中获取值 有什么方法可以解密密码值 你可以做 from airflow hooks base hook import BaseHook connection BaseHook get connection c
  • Airflow:如何扩展SubDagOperator?

    当我尝试扩展气流 API 中提供的 SubDagOperator 时 气流网络服务器 GUI 无法将其识别为 SubDagOperator 从而使我无法放大 subdag 如何扩展 SubDagOperator 同时保留将其放大为 subd
  • 我无法通过 BashOperator xcom_push 参数

    我是 Airflow 的 xcom 功能的新手 我用 PythonOperator 尝试了它 它工作得很好 即 我可以从上下文中推送和提取值 但是当我在 BashOperator 上尝试它时 它不起作用 但是 我可以通过在任务创建期间添加
  • 在 VBA (Excel) 中获取时区信息

    我想在 VBA 中确定不同国家 地区在特定日期的 GMT UTC 时间偏移 包括夏令时 有任何想法吗 编辑 来自自我回答 谢谢 0xA3 我快速浏览了链接页面 我假设您只能获取 Windows 运行所在本地的 GMT 偏移量 Convert
  • 如何在 Airflow 中使用 HashiCorp Vault?

    我开始使用 Apache Airflow 我想知道如何有效地使其使用存储在 Vault 中的秘密和密码 不幸的是 搜索不会返回超出范围的有意义的答案Airflow 中尚未实现的钩子 https issues apache org jira
  • 当数据依赖于日期时间时,在数据库中保存日期时间和时区信息的最佳实践

    关于在数据库中保存日期时间和时区信息有很多问题 但更多的是总体水平 这里我想讲一个具体的案例 系统规格 我们有一个订单系统数据库 它是一个多租户系统 租户可以使用任意时区 它是任意的 但每个租户只有一个时区 保存在租户表中一次并且永不更改
  • DateTime 对象不受其时间戳的约束?

    Is a DateTime object 不受其时间戳的约束 或者确实getTimestamp 有某种副作用使用时关于夏令时的变化 Details设置时间戳时DateTime开启的对象DST 意味着格式化时间在更改时钟之前 之后都存在 返回
  • 在 Airflow 中编写和导入自定义插件

    这实际上是两个问题合二为一 My AIRFLOW HOME结构如下 airflow dags plugins init py hooks init py my hook py another hook py operators init p
  • 任务之间的气流延迟

    As you can see in the image airflow is making too much time between tasks execution it almost represents 30 of the DAG e
  • 夏令时规则更改是否使 C 运行时库失效?

    前段时间我整理了一个time基于库 可用于计算某人一年内的相对时间 我当时注意到 为了夏令时 它在两个方向上进行了一小时的轮班 我刚刚想到国会更改了夏令时规则 http aa usno navy mil faq docs daylight
  • 规则和夏令时

    我在用着rrule https github com jakubroztocil rrule在我的数据库中创建和存储事件 一切正常 直到我发现我的重复事件与 3 月 31 日之后有一个小时的差异 在法国 这一天我们进行夏令时更改 实际上 我
  • Airflow 2.x 中 DAG 导入错误的日志消息

    我正在本地运行 Apache Airflow 2 x 使用中提供的 Docker Compose 文件文档 https airflow apache org docs apache airflow stable start docker h
  • Amazon MWAA Airflow - 任务容器在没有日志的情况下关闭/停止/终止

    我们使用 Amazon MWAA Airflow 很少有任务标记为 FAILED 但根本没有日志 就好像容器在我们没有注意到的情况下被关闭了一样 我找到了这个链接 https cloud google com composer docs h
  • Airflow 默认连接数过多

    我打开气流并检查连接 发现其后面运行的连接太多 关于如何杀死那些我不使用的任何想法 或者我很想知道运行它的最小 conn id 建筑学 LocalExecutor 与其他经纪人不同 Postgres 作为元数据库 但它列出了 17 个连接
  • Airflow:网络服务器未找到新的 DAG

    在 Airflow 中 我应该如何处理错误 此 DAG 在网络服务器 DagBag 对象中不可用 它显示在此列表中 因为调度程序将其在元数据数据库中标记为活动状态 我已将新的 DAG 复制到 Airflow 服务器 并尝试过 取消暂停并刷新
  • 仅从日期计算夏令时

    我正在使用 Arduino 和实时时钟芯片 该芯片补偿了闰年等 因此它始终具有正确的日期 但我认为由于区域复杂性 它不处理夏令时 时钟可以给出日 月 年 从 1 开始 以及星期几 星期日 0 到星期六 6 因为我需要与用户输入的日期和时间进
  • Airflow 1.10.3 - 空白“最近任务”和“DAG 运行”

    我在 Ubuntu 18 10 上安装了 Airflow 1 10 3 并且能够添加 DAG 并运行它们 但 Web UI 中的 最近任务 和 DAG 运行 为空 我所看到的只是一个黑色虚线圆圈 它不断加载 但什么也没有实现 我最近将 Ai

随机推荐

  • 如何更改 Xamarin.Forms 上的后退按钮文本

    我一直在尝试更改 Xamarin Forms 中后退按钮的文本 但没有成功 我已经尝试过这段代码但没有运气 NavigationPage SetBackButtonTitle this 我正在使用一个MasterDetailPage 我尝试
  • 如何消除 XCode 5 / iOS 7 中的图标眩光?

    我正在使用 XCode 5 开发者预览版来创建 iOS 7 应用程序 在iOS 7中 图标的眩光效果不再存在 没关系 但现在 当我在 iOS 6 设备 或模拟器 上运行由 XCode 5 编译的应用程序时 我看到图标上有眩光效果 禁用眩光的
  • 尝试为 linq 中的日期创建大于、等于或大于动态过滤器

    我一直在尝试为 Linq 创建一个表达式树过滤器 它接受 2 个日期和一串可能的值 小于 等于 大于 我希望将调用格式设置为 Query Where CompareDates x gt x left right less than 我有代码
  • 从标准输入读取密码[重复]

    这个问题在这里已经有答案了 场景 一个交互式 CLI Python 程序 需要密码 这也意味着 没有可能的 GUI 解决方案 在 bash 中 我可以读取密码 而无需在屏幕上重新提示 read s Python 有类似的东西吗 IE pas
  • 如何上传到 Dropbox Public 文件夹并获取公共 URL?

    我遇到一种情况 我需要将文件上传到我的 Dropbox 公共文件夹 并且上传后我需要存储上传文件的公共 url 我正在使用 python 对此的任何帮助都会很棒 Thanks 使用它在您的程序中设置 Python SDK https www
  • iOS 推送通知问题

    我正在做一个项目 其中推送通知功能是关键特征之一 当我在应用程序中时它工作正常 我收到通知并处理该通知 但问题是当我在后台并收到通知时 我在应用程序图标上看到徽章 当我单击该图标时 我的应用程序正在启动 但是didReceiveRemote
  • 在 ASP.Net Core 中创建自定义 HTML 帮助器

    我想创建自己的自定义 HTML Helper 就像 ASP NET MVC 中使用的那样 但我一直无法找到如何以正确的方式实现它们 我已经找到了如何创建自定义标记帮助程序 但没有找到 HTML 帮助程序 如何创建我自己的自定义 HTML 帮
  • 从 onLoadFinished() 中的光标填充小部件

    我想知道如何使用CursorLoader填充屏幕上的小部件 网上的所有示例仅适用于使用适配器 而且效果很好 我需要的是一种可靠的方法来从光标和 UI 线程上更新屏幕中的视图 并且有时不会因为以下原因而崩溃StaleDataException
  • 它有一些专门针对 tibble 和管道内衬副作用的函数吗?

    我想知道是否可以使用 dplyr select dplyr mutate 或 dplyr transmute 等函数来调用副作用函数 我有步行 但不是来自同一家庭 tibble as tibble mtcars gt dplyr trans
  • Chrome for IOS 无法在 iframe 中正确打开新窗口

    我正在尝试在 iframe 内的 Chrome for iOS 中的新窗口中打开链接 但 Chrome for iOS 不会在新窗口中打开链接 而是浏览器在同一窗口中而不是在新窗口中打开链接 对于弹出窗口也是如此 很奇怪 Example 测
  • 带有不可见项目的微格式 hreview

    我正在一个网站上实现微格式的 hreview 部分 以供 Google 索引 http www google com support webmasters bin answer py answer 146645 http www googl
  • 确保文件在 JVM 退出时被删除

    即使 JVM 提前终止 File deleteOnExit 是否也能保证文件被删除 正如蒂姆 本德所说 File deleteOnExit 不保证文件确实被删除 但是 在 Unixish 系统 例如 Linux 或 OSX 上 可以删除临时
  • 如何在同一个存储库中保留/维护公共和私有代码? (在存储库托管处)

    我正在开发自己的项目 该项目分为两部分 A 内核 通用代码 公共部分 B 适用于专有协议等的代码 私有部分 可供我和一些授权人员使用 我想要存储库托管 可能是 github assembla 它允许在同一存储库中的公共和私有分支中工作 我不
  • 向 sqlite 数据库添加列

    我正在尝试将在 R 中生成的向量作为新列添加到 sqlite 表中 为此我想使用dplyr 我安装了最新的开发版本以及dbplyr根据这篇文章打包here https www r bloggers com dplyr 0 6 0 comin
  • 标签中可以包含任何类型的标签吗?

    是否有诸如 div div
  • Cakephp 2.0 和基本身份验证

    我已将我的应用程序从 CakePHP 1 3 升级到 2 0 4 以前 我只能在一个控制器中使用安全组件来模拟基本 HTTP 身份验证 我曾经做过这样的事情 this gt Auth gt allow array this gt Secur
  • 使用 sqlparse 解析 CASE WHEN 语句

    我有以下 SQL 查询并想使用它来解析它sqlparse https github com andialbrecht sqlparse import sqlparse query select SUM case when A dt unix
  • postgres docker 容器中的 pg_restore

    我正在尝试使用 pg restore 从将从 docker 文件调用的 shell 脚本中恢复 PostgreSQL docker 容器中的数据库 我收到以下错误 错误 取消自动清理任务 CONTEXT 自动分析表 tablename Do
  • SwitchPreference (PreferenceAtivity) - Android NULL

    我有一个屏幕首选项 因此使用了 PreferenceActivity 我已经构建了所有内容并正常运行 但是通过单击文本 SwitchPreference 即行上的任何位置而不位于同一开关中 他可以使用手机 版本 4 1 2 因空指针异常而爆
  • 如何在 Apache Airflow 中正确处理夏令时?

    在气流中 一切都应该是 UTC 不受 DST 影响 但是 我们的工作流程可以根据受 DST 影响的时区交付内容 一个示例场景 我们安排了一项作业 开始日期为东部时间上午 8 00 计划间隔为 24 小时 每天东部时间上午 8 点 调度程序会