Parallel processing 运行一个气流操作符的多个迭代

Parallel processing 运行一个气流操作符的多个迭代,parallel-processing,operators,airflow,Parallel Processing,Operators,Airflow,我正在构建一个系统,该系统应该列出远程SFTP服务器上的文件,然后在本地下载这些文件。我希望它并行运行,这样我就可以为每个要下载的文件启动一个作业,或者同时下载10个以上的文件 我对气流还不熟悉,还没有完全理解一切。我想应该有一个解决办法,但我就是想不出来 这是代码,目前我在一个运营商下载所有文件,但据我所知,它没有使用多个工人 def transfer_files(): for i in range(1, 11): sftp.get(REMOTE_PATH + 'te

我正在构建一个系统,该系统应该列出远程SFTP服务器上的文件,然后在本地下载这些文件。我希望它并行运行,这样我就可以为每个要下载的文件启动一个作业,或者同时下载10个以上的文件

我对气流还不熟悉,还没有完全理解一切。我想应该有一个解决办法,但我就是想不出来

这是代码,目前我在一个运营商下载所有文件,但据我所知,它没有使用多个工人

def transfer_files():
    for i in range(1, 11): 
        sftp.get(REMOTE_PATH + 'test_{}.csv'.format(i), LOCAL_PATH + 'test_{}.csv'.format(i))

假设您使用的是PythonOperator,您可以启动多个PythonOperator,它如下所示:

def get_my_file(i):
    sftp.get(REMOTE_PATH + 'test_{}.csv'.format(i), LOCAL_PATH + 'test_{}.csv'.format(i))

def transfer_files():
    for i in range(1, 11):
        task = PythonOperator(
            task_id='test_{}.csv'.format(i),
            python_callable=get_my_file,
            op_args=[i],
            dag=dag)

这似乎不起作用。我尝试了这个连接,但在远程路径中没有看到文件的迹象。此方法是否应在dag中创建条目?因为我没有看到此任务id的迹象。我尝试了相同的方法创建一些测试文件,任务成功,但目标文件夹中没有文件。在我看来,它根本不运行。最后你调用了transfer_files函数了吗?我没有正确地为操作符分配依赖项。现在效果很好!