python - 如何根据 python 脚本中的 if-else 条件在气流中发送电子邮件?
问题描述
我有一个这样的python脚本:
#example.py
def a():
records=[]
if len(records)==0:
#do something
else:
#do something
我将使用 python 运算符在我的气流脚本中调用函数“a”,现在如果函数中的“if 语句”变为 true,则我必须发送包含一些内容的电子邮件通知,如果执行 else 语句,我们应该没有收到任何电子邮件通知。我们怎样才能做到这一点?
解决方案
您需要在函数中传递上下文,可以通过在调用 a() 的 PythonOperator 中设置 provide_context = True 来完成。
代码(未经测试)
def a(context):
records=[]
if len(records)==0:
#do something
email = EmailOperator(task_id="email_task",
to ="put reciever email id here",
subject="sample_subject",
html_content="email content can be html",
dag = context.get("dag") )
email.execute(context=context)
else:
#do something
#your logic
with DAG(dag_id='sample_dag', schedule_interval=None, default_args=default_args):
sample_task = PythonOperator(task_id="some_task_id",
python_callable=a,
provide_context = True)
推荐阅读
- angular - 如何在 TypeScript 中正确使用 GeolocationPosition?
- html - 使用 BeautifulSoup 抓取非内联样式的 html 元素的 css 属性
- python - 类型错误:只能将 str(不是“float”)连接到 str
- r - 如何在 sparklyr 包中运行 FPGrowth
- python - 我无法显示 Django 表单
- jquery - jQuery validate submitHandler 不会触发
- spring - 在 Spring Boot 显示中请求无效或未知 URL 时如何重定向到错误页面
- javascript - 如何使轮播的上一个和下一个按钮工作?
- c++ - 难忘的工厂:不适用于默认的可构造对象
- sql-server - SQL Server 图表以获取连接到节点的多个节点类型