如果我有多个气流依赖项,并且它们之间存在一些重叠的python软件包依赖项,那么如何保留每个项目部门。解耦?例如。如果我在同一台服务器上有项目A和B,我将使用类似...的方式运行它们中的每一个
source /path/to/virtualenv_a/activate python script_a.py deactivate source /path/to/virtualenv_b/activate python script_b.py deactivate
[基本上,希望在相同的情况下运行dag(例如,每个dag使用的Python脚本可能具有重叠的程序包deps。我想单独开发(即,在需要时不必使用程序包更新所有代码仅针对一个项目更新软件包))。注意,我一直在使用
BashOperator
运行python任务,例如...
do_stuff = BashOperator( task_id='my_task', bash_command='python /path/to/script.py'), execution_timeout=timedelta(minutes=30), dag=dag)
是否有办法使它正常工作?气流是否有其他旨在让人们解决(或避免)此类问题的最佳实践方法?
如果我有多个气流依赖项,并且它们之间存在一些重叠的python软件包依赖项,那么如何保留每个项目部门。解耦?例如。如果我在同一台服务器上有项目A和B,则将运行... ...>
您可以使用打包的dag,其中每个dag都依赖于其打包http://airflow.apache.org/concepts.html#packaged-dags
基于apache-airflow邮件列表的讨论,最简单的解决我使用各种python脚本执行任务的模块化方式的方法是,直接为每个脚本或模块调用virtualenv python解释器二进制文件,例如。