我正在创建一个具有以下任务结构的 dag。此 DAG 将按计划运行 UTC 时间每天凌晨 1:00。 从数据库中获取行 ---- 在行上循环以运行许多需要每行数据的任务。
例如,我的 DAG 中有调用 MySQL 数据库并返回多行的方法。每行数据我必须将 4 个任务作为参数传递。我遵循了一些谷歌搜索文档,但没有正确运行。
return_db_result 是在 GCP 中从 Cloud SQL 获取结果的方法。
def return_result():
db_engine_connection = create_cloud_sql_connection()
session = get_db_session(db_engine_connection)
result = session.query(Scheduled).filter(Scheduled.job_status == "Scheduled").all()
session.commit()
return result
我尝试使用 for 循环,如下所示
for row in return_result():
op1 = operator({ param=row.id})
op2 = operator({ param=row.id})
op3 = operator({ param=row.id})
op4 = operator({ param=row.id})
op1 >> op2 >> op3 >> op4
但是这些任务没有显示在气流 UI 上。
答案 0 :(得分:0)
根据您的评论,假设您的运营商是:
val requestOptions = RequestOptions().diskCacheStrategy(DiskCacheStrategy.ALL)
Glide.with(context).load(url).apply(requestOptions).into(imageView)
您可以按如下方式使用它:
class MyOperator(BaseOperator):
@apply_defaults
def __init__(self,
input_id,
input_date,
input_status,
*args, **kwargs):
super(MyOperator, self).__init__(*args, **kwargs)
self.input_id=input_id
self.input_date=input_date
self.input_status=input_status
def execute(self, context):
pass