Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

airflow TimeDeltaSensor fails with unsupported operand type

Tags:

airflow

In my DAG I have a TimeDeltaSensor created using:

from datetime import datetime, timedelta
from airflow.operators.sensors import TimeDeltaSensor 
wait = TimeDeltaSensor(
    task_id='wait',
    delta=timedelta(seconds=300),
    dag=dag
)

However when it runs I get error

  • Subtask: [2018-07-13 09:00:39,663] {models.py:1427} ERROR - unsupported operand type(s) for +=: 'NoneType' and 'datetime.timedelta'

enter image description here

Airflow version is 1.8.1.

The code is basically lifted from Example Pipeline definition so I'm nonplussed as to what the problem could be. Any ideas?

like image 660
jamiet Avatar asked Jul 13 '18 09:07

jamiet


1 Answers

Looking into the source code you linked there is one line that strikes me as interesting in this case:

target_dttm = dag.following_schedule(context['execution_date'])

Which means: If you don't have setup a proper DAG schedule this component will try to add its time delta to None.

I am not sure if the code in the question is just an example or the whole thing. My suggestion is: Add a DAG schedule with is other than None.

like image 183
tobi6 Avatar answered Nov 05 '22 16:11

tobi6