我有2个任务
第一个任务将一些数据集下载到folder_1
第二项任务是清除folder_1
上的每个文件
CRUDE_NEW_DATASET_LOCAL
是本地路径
download_crude_new_dataset = BashOperator(
task_id = "download_crude_new_dataset",
bash_command = bash.download_crude_new_dataset(),
dag=dag
)
cleaning_crude_new_dataset = []
crude_new_dataset = glob(bash.CRUDE_NEW_DATASET_LOCAL+"/*",recursive=True)
for p in crude_new_dataset :
path = p.replace('\\','/')
if os.path.isfile(path):
cleaning_crude_new_dataset.append(
BashOperator(
task_id = "cleaning_crude_new_dataset-"+bash._path_leaf_(path),
bash_command = bash.cleaning_dataset(path),
dag=dag
)
)
download_crude_new_dataset >> cleaning_crude_new_dataset
我触发气流滞后的问题是folder_1
还是空的。并且使cleaning_crude_new_dataset
(任务数组)为空。
感谢您的帮助
答案 0 :(得分:0)
尝试一下:
download_crude_new_dataset = BashOperator(
task_id= "download_crude_new_dataset",
bash_command= bash.download_crude_new_dataset(),
dag= dag
)
#cleaning_crude_new_dataset = []
crude_new_dataset = glob( bash.CRUDE_NEW_DATASET_LOCAL + "/*", recursive= True )
for p in crude_new_dataset :
path = p.replace( '\\', '/' )
if os.path.isfile( path ):
temp_task = BashOperator(
task_id= "cleaning_crude_new_dataset-" + bash._path_leaf_( path ),
bash_command= bash.cleaning_dataset( path ),
dag= dag
)
#cleaning_crude_new_dataset.append( temp_task )
download_crude_new_dataset.set_downstream( temp_task )
答案 1 :(得分:0)
此问题已解决
将任务从单个Dag拆分为多个Dag
并触发其他dag(dag1
>> dag2
>> dag3
...)
如果需要,请将dag_dir_list_interval
从300更改为较小的数字