气流TimeDeltaSensor因操作数类型不受支持而失败
我在“ Google Cloud Composer” 上使用了 Airflow ,并且我需要从“ FaceBook Ads”中获取不同帐户的数据,因此需要稍加延迟两次通话之间的秒数。 我尝试使用 TimeDeltaSensor ,但是在dag链中插入此运算符的调用时,错误地发送了代码。
这是我的爸爸:
dag_start_date = get_yesterday(at_midnight=True)
dag_args = get_dag_args(FLOW, dag_name, dag_start_date=dag_start_date)
with DAG(dag_id=dag_name, default_args=dag_args, start_date=dag_start_date, schedule_interval='@once') as dag:
worker = FacebookAdsToBigQuery(FLOW, dag)
end_date = dag_start_date
start_date = end_date - timedelta(days=3)
worker.run_dag(start_date, end_date)
这是有关TimeDeltaSensor的代码:
....
for level in FacebookAdsToBigQuery.LEVELS:
table_schema_fname = self.level_table_schema_file[level]
schema_fields = bb_utils.load_json_file(table_schema_fname)
for j, account_id in enumerate(self.account_ids):
tsk_prefix = f"{self.dag.dag_id}_{account_id}_{level}"
delta = j * 10
if delta > 0:
wait_x_nextact_tsk = TimeDeltaSensor(task_id=f'{tsk_prefix}_wait_{delta}',
delta=timedelta(seconds=delta), dag=self.dag)
else:
wait_x_nextact_tsk = DummyOperator(task_id=f'{tsk_prefix}_nowait', dag=self.dag)
....
这是错误:
[2019-10-08 11:18:25,547] {base_task_runner.py:101}信息-工作199692:子任务facebook_ads_233070883986464_ad_wait_40 [2019-10-08 11:18:25,546] {cli.py:520}信息-在主机airflow-worker-5fd4678587-l6nlf上运行
[2019-10-08 11:18:25,642] {models.py:1796}错误-+ =不支持的操作数类型:'NoneType'和'datetime.timedelta'
原因可能是操作员无法理解dag参数 schedule_interval ='@ once'?
谢谢