【发布时间】:2017-11-18 06:33:35
【问题描述】:
我想用我从任务传递的一个参数来执行一个函数。
这是我的带有状态参数的函数:
def sns_notify(state):
client = boto3.client('sns')
if state == "failed":
message = config.get('sns', 'message') + state
else:
message = config.get('sns', 'message') + state
response = client.publish(TargetArn=config.get('sns', 'target_arn'),
Message=message,
Subject=config.get('sns', 'subject'))
return response
这是我的任务,状态为参数:
t1 = DummyOperator(task_id='Dummy-1', trigger_rule=TriggerRule.ALL_SUCCESS,
on_success_callback=sns_notify("ok"), dag=dag)
t2 = DummyOperator(task_id='Dummy-2', trigger_rule=TriggerRule.ONE_FAILED,
on_success_callback=sns_notify("failed"), dag=dag)
当我运行 dag 时,函数不会停止发送邮件(例如)
【问题讨论】:
-
response行应该与else我想。在这里加4个空格就大功告成了 -
这是另外一回事,我只想用 if,else 初始化变量 message。
-
不停止发送邮件是什么意思?在你杀死执行者之前,你会一直收到电子邮件吗?
标签: python scheduled-tasks scheduler airflow apache-airflow