Python 3.x 诱导Dag睡眠延迟

Python 3.x 诱导Dag睡眠延迟,python-3.x,airflow,airflow-scheduler,Python 3.x,Airflow,Airflow Scheduler,对于回填作业,我尝试了timedelta传感器,但它似乎检查执行时间+60分钟,而不是当前时间+60分钟。 有没有办法使回填作业的当前时间+60分钟延迟 基本上,这种延迟可以避免我达到API速率限制。 目前正在使用下面的任务进行延迟,这似乎不起作用 task_id='wait', delta=timedelta(minutes=60), dag=dag ) 您需要自己的自定义操作符或传感器,并使用任务实例的“开始日期”属性。使用开始日期是您需要从库中的TimeDelta

对于回填作业,我尝试了timedelta传感器,但它似乎检查执行时间+60分钟,而不是当前时间+60分钟。 有没有办法使回填作业的当前时间+60分钟延迟

基本上,这种延迟可以避免我达到API速率限制。 目前正在使用下面的任务进行延迟,这似乎不起作用

    task_id='wait',
    delta=timedelta(minutes=60),
    dag=dag
)

您需要自己的自定义操作符或传感器,并使用任务实例的“开始日期”属性。使用开始日期是您需要从库中的TimeDeltaSensor进行的唯一更改

如果复制TimeDeltaSensor源代码,可以使用以下内容覆盖poke方法:

... target\u dttm=上下文[task\u instance]。开始日期 target_dttm+=self.delta return timezone.utcnow>target\u dttm 增加 虽然再次阅读您的问题,但我发现您可能只需要一个在其执行中具有睡眠的操作符。或者一个有睡眠模式的python可调用函数,并通过PythonOperator推送它。。。差不多

def hit_api: 通过 def击中并后退: 尽管如此: 尝试: hit_api 除以下错误外: 睡觉 除e外: 提升
您需要自己的自定义操作符或传感器,并使用任务实例的“开始日期”属性。使用开始日期是您需要从库中的TimeDeltaSensor进行的唯一更改

如果复制TimeDeltaSensor源代码,可以使用以下内容覆盖poke方法:

... target\u dttm=上下文[task\u instance]。开始日期 target_dttm+=self.delta return timezone.utcnow>target\u dttm 增加 虽然再次阅读您的问题,但我发现您可能只需要一个在其执行中具有睡眠的操作符。或者一个有睡眠模式的python可调用函数,并通过PythonOperator推送它。。。差不多

def hit_api: 通过 def击中并后退: 尽管如此: 尝试: hit_api 除以下错误外: 睡觉 除e外: 提升
我找到的最简单的解决方案是另一个DAG,它触发了计划的回填

我找到的最简单的解决方案是另一个DAG,它触发了计划的回填