Is it possible to extend the data source and increase the ssh type. I look at the data structure of DB is ok.
-------------------- DolphinScheduler(Incubator) Commtter Hemin Wen 温合民 [email protected] -------------------- 裴龙武 <[email protected]> 于2020年5月27日周三 上午10:55写道: > Good idea! It's can solve the exceptions where the numbers of SSH > connections exceeds. > > > We also have another problem of how to config remote server easily when we > have hundreds of tasks. > > > Now I use the local param to config remote server's IP,username,password. > But every task needs to config. > > > > > > > ------------------ 原始邮件 ------------------ > 发件人: "lidong dai"<[email protected]>; > 发送时间: 2020年5月26日(星期二) 晚上6:38 > 收件人: "dev"<[email protected]>; > > 主题: Re: [Feature] Support SSH Task > > > > good idea, I think "Control the number of task's concurrent" may be have > some other methods, for now, we don't have this feature, but when I > communicate with the team of China Unicom, they provide a new solve > solution: > we can add a task concurrent page, you can set a variable value like > 'ETL_JOB' =10 and so on, then give the task type add a option for choosing > ETL_JOB or other variable, and there may be many task also choose ETL_JOB > variable. when these tasks begin to running at the same time, the > Master > Server will check whether a task begin to run or wait(if the running tasks > num = 10) > > > Best egards > --------------- > DolphinScheduler(Incubator) PPMC > Lidong Dai 代立冬 > [email protected] > --------------- > > > 裴龙武 <[email protected]> 于2020年5月26日周二 下午2:34写道: > > > There is only two ways that I can think to do about this. > > > > > > 1. Simple SSH connect pool > > 2. Control the number of task's concurrent > > > > > > ------------------&nbsp;原始邮件&nbsp;------------------ > > 发件人:&nbsp;"Hemin Wen"<[email protected]&gt;; > > 发送时间:&nbsp;2020年5月22日(星期五) 晚上7:29 > > 收件人:&nbsp;"dev"<[email protected]&gt;; > > > > 主题:&nbsp;Re: [Feature] Support SSH Task > > > > > > > > What other friends think about this discuss > > > > > > -------------------- > > DolphinScheduler(Incubator) Commtter > > Hemin Wen&nbsp; 温合民 > > [email protected] > > -------------------- > > > > > > 裴龙武 <[email protected]&gt; 于2020年5月22日周五 上午10:20写道: > > > > &gt; Your are right, it can be solved the problem by modifying the > > &gt; number of server ssh connections.&amp;nbsp; > > &gt; > > &gt; The real reason is that I want to control the&amp;nbsp; > number of SSH > > &gt; connections and reuse the SSH connection, Because the remote > server is > > &gt; managed by other team. > > &gt; > > &gt; Otherwise, I think that we can also control the number of > parallel > > tasks > > &gt; in a workflow. > > &gt; > > &gt; > > &gt; It is a good idea that we can use the encapsulated ssh > connection to > > get > > &gt; clear > > &gt; exception information&amp;nbsp; > > &gt; > > &gt; > > &gt; > > &gt; > > &gt; > > &gt; > > &gt; > > &gt; > ------------------&amp;nbsp;原始邮件&amp;nbsp;------------------ > > &gt; 发件人:&amp;nbsp;"Hemin Wen"<[email protected] > &amp;gt;; > > &gt; 发送时间:&amp;nbsp;2020年5月21日(星期四) 中午11:07 > > &gt; 收件人:&amp;nbsp;"dev"<[email protected] > &amp;gt;; > > &gt; > > &gt; 主题:&amp;nbsp;Re: [Feature] Support SSH Task > > &gt; > > &gt; > > &gt; > > &gt; Thanks. > > &gt; > > &gt; About ssh connections pool, > > &gt; 1. If the connection is not enough, Can it be solved by > modifying the > > &gt; number of server ssh connections. > > &gt; 2. I think we have to look at whether a server's parallel > ssh tasks > > will > > &gt; reach the bottleneck of server connections. > > &gt; > > &gt; I think it is better to use the encapsulated ssh connection > to get > > clear > > &gt; exception information. > > &gt; > > &gt; -------------------- > > &gt; DolphinScheduler(Incubator) Commtter > > &gt; Hemin Wen&amp;nbsp; 温合民 > > &gt; [email protected] > > &gt; -------------------- > > &gt; > > &gt; > > &gt; 裴龙武 <[email protected]&amp;gt; 于2020年5月20日周三 下午11:29写道: > > &gt; > > &gt; &amp;gt; Thanks for your advise and suggestions. It may > has some > > exceptions if > > &gt; I > > &gt; &amp;gt; implement SSH Task as you said. Now, let me > explain my ideas. > > &gt; &amp;gt; > > &gt; &amp;gt; > > &gt; &amp;gt; e.g > > &gt; &amp;gt; > > &gt; &amp;gt; > > &gt; &amp;gt; My workflow DAG has 100 or more task, it's all > ssh task. I > > &gt; have&amp;amp;nbsp; two > > &gt; &amp;gt; questions. > > &gt; &amp;gt; > > &gt; &amp;gt; > > &gt; &amp;gt; 1、We must limit SSH connection and reuse the > SSH connections, > > &gt; otherwise > > &gt; &amp;gt; the remote server will be refused. > > &gt; &amp;gt; > > &gt; &amp;gt; > > &gt; &amp;gt; 2、If we config all of these task, we have a lot > of repeat > > work to do. > > &gt; &amp;gt; > > &gt; &amp;gt; > > &gt; &amp;gt; By the way, the way I'm currently verifying is > I use local > > params to > > &gt; &amp;gt; config the remote server's host,user,password > > &gt; &amp;gt; > > &gt; &amp;gt; > > &gt; &amp;gt; > > > ------------------&amp;amp;nbsp;原始邮件&amp;amp;nbsp;------------------ > > &gt; &amp;gt; 发件人:&amp;amp;nbsp;"lidong dai"< > [email protected] > > &amp;amp;gt;; > > &gt; &amp;gt; 发送时间:&amp;amp;nbsp;2020年5月20日(星期三) 晚上10:56 > > &gt; &amp;gt; 收件人:&amp;amp;nbsp;"dev"< > [email protected] > > &amp;amp;gt;; > > &gt; &amp;gt; > > &gt; &amp;gt; 主题:&amp;amp;nbsp;Re: [Feature] Support SSH > Task > > &gt; &amp;gt; > > &gt; &amp;gt; > > &gt; &amp;gt; > > &gt; &amp;gt; hi, I see you will Jsch, does his license > compitable with > > apache v2 > > &gt; &amp;gt; license, I see the following words " > > &gt; &amp;gt; JSch 0.0.* was released under the GNU LGPL > license. Later, > > we have > > &gt; switched > > &gt; &amp;gt; over to a BSD-style license. > > &gt; &amp;gt; " on > https://github.com/is/jsch/blob/master/LICENSE.txt . > > you know, > > &gt; LGPL > > &gt; &amp;gt; license not compitable with apache license. but > BSD is ok , > > so the > > &gt; version > > &gt; &amp;gt; of Jsch is key point > > &gt; &amp;gt; > > &gt; &amp;gt; second, Connection Pool is heavy resource, > Please use > > carefully > > &gt; &amp;gt; > > &gt; &amp;gt; and I'm a little confused, why there must be > add a new > > &gt; Table,&amp;amp;nbsp; other > > &gt; &amp;gt; task > > &gt; &amp;gt; types also no seperate table,&amp;amp;nbsp; > could you > > consider task_type > > &gt; and > > &gt; &amp;gt; task_json > > &gt; &amp;gt; in t_ds_task_instance ? > > &gt; &amp;gt; > > &gt; &amp;gt; > > &gt; &amp;gt; > > &gt; &amp;gt; Best Regards > > &gt; &amp;gt; --------------- > > &gt; &amp;gt; DolphinScheduler(Incubator) PPMC > > &gt; &amp;gt; Lidong Dai 代立冬 > > &gt; &amp;gt; [email protected] > > &gt; &amp;gt; --------------- > > &gt; &amp;gt; > > &gt; &amp;gt; > > &gt; &amp;gt; 裴龙武 <[email protected]&amp;amp;gt; > 于2020年5月20日周三 下午9:57写道: > > &gt; &amp;gt; > > &gt; &amp;gt; &amp;amp;gt; I want to describe my idea. > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; First, we must design a host > table that's named > > &gt; t_ds_ssh_host, e.g > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; - id > > &gt; &amp;gt; &amp;amp;gt; - name > > &gt; &amp;gt; &amp;amp;gt; - ip / host > > &gt; &amp;gt; &amp;amp;gt; - user > > &gt; &amp;gt; &amp;amp;gt; - password > > &gt; &amp;gt; &amp;amp;gt; - max_connection > > &gt; &amp;gt; &amp;amp;gt; - create_time > > &gt; &amp;gt; &amp;amp;gt; - update_time > > &gt; &amp;gt; &amp;amp;gt; - user_id > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; Second, Shell can execute in > worker server or > > remote host. > > &gt; We can > > &gt; &amp;gt; choose a > > &gt; &amp;gt; &amp;amp;gt; host in host's list. > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; Third, when workflow running, > we must maintain > > the remote > > &gt; host's > > &gt; &amp;gt; &amp;amp;gt; connection pool. > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; Finally, when workflow finish, > we must release > > the > > &gt; connection pool. > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; Why do we have to maintain a > connection pool. > > Because it is > > &gt; very easy > > &gt; &amp;gt; to > > &gt; &amp;gt; &amp;amp;gt; get exceptions when it's has > many SSH task. > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > > &gt; > > > ------------------&amp;amp;amp;nbsp;原始邮件&amp;amp;amp;nbsp;------------------ > > &gt; &amp;gt; &amp;amp;gt; > 发件人:&amp;amp;amp;nbsp;"lidong dai"< > > [email protected] > > &gt; &amp;amp;amp;gt;; > > &gt; &amp;gt; &amp;amp;gt; > 发送时间:&amp;amp;amp;nbsp;2020年5月20日(星期三) 晚上7:12 > > &gt; &amp;gt; &amp;amp;gt; > 收件人:&amp;amp;amp;nbsp;"dev"< > > [email protected] > > &gt; &amp;amp;amp;gt;; > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; 主题:&amp;amp;amp;nbsp;Re: > [Feature] Support SSH > > Task > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; glad to hear that you will > implement this > > feature > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; Best Regards > > &gt; &amp;gt; &amp;amp;gt; --------------- > > &gt; &amp;gt; &amp;amp;gt; DolphinScheduler(Incubator) > PPMC > > &gt; &amp;gt; &amp;amp;gt; Lidong Dai 代立冬 > > &gt; &amp;gt; &amp;amp;gt; [email protected] > > &gt; &amp;gt; &amp;amp;gt; --------------- > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; 裴龙武 <[email protected] > &amp;amp;amp;gt; > > 于2020年5月20日周三 下午3:47写道: > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; My code > is not perfect yet. I > > will write a > > &gt; detailed design > > &gt; &amp;gt; document. > > &gt; &amp;gt; &amp;amp;gt; Then > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; I will > realize this feature > > about our > > &gt; discussion result. > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; > > &gt; > > > ------------------&amp;amp;amp;amp;nbsp;原始邮件&amp;amp;amp;amp;nbsp;------------------ > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > 发件人:&amp;amp;amp;amp;nbsp;"wenhemin"< > > &gt; [email protected]&amp;amp;amp;amp;gt;; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > 发送时间:&amp;amp;amp;amp;nbsp;2020年5月18日(星期一) 晚上7:50 > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > 收件人:&amp;amp;amp;amp;nbsp;"裴龙武"<[email protected] > > &gt; &amp;amp;amp;amp;gt;;"dev"< > > &gt; &amp;gt; &amp;amp;gt; > [email protected] > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > &amp;amp;amp;amp;gt;; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > 主题:&amp;amp;amp;amp;nbsp;Re: > > [Feature] Support SSH > > &gt; Task and Support > > &gt; &amp;gt; dummy task > > &gt; &amp;gt; &amp;amp;gt; like airflow > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; Thanks > for writing detailed > > documentation. I > > &gt; think this is > > &gt; &amp;gt; also a > > &gt; &amp;gt; &amp;amp;gt; missing > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; feature > of DS. > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; About the > extension point: > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; 1.Can ssh > tasks be merged into > > shell tasks. > > &gt; Essentially, > > &gt; &amp;gt; they all > > &gt; &amp;gt; &amp;amp;gt; execute > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; shell > commands. > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; 2.About > dummy task, DS has the > > function of > > &gt; disable nodes, I > > &gt; &amp;gt; do n’t > > &gt; &amp;gt; &amp;amp;gt; know if > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; this > requirement is met. > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; The > script from AirFlow to > > Dolphin is great. > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > &amp;amp;amp;amp;gt; 在 > > 2020年5月18日,09:28,裴龙武 < > > &gt; [email protected]&amp;amp;amp;amp;gt; > > &gt; &amp;gt; 写道: > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > &amp;amp;amp;amp;gt; OK, 3Q! > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > &amp;amp;amp;amp;gt; First, I > > will ensure that open > > &gt; source can use. > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > &amp;amp;amp;amp;gt; Second, I > > think we must > > &gt; discuss deeply. I write > > &gt; &amp;gt; a more > > &gt; &amp;gt; &amp;amp;gt; detailed > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; document. > You can check the > > attachment. I also > > &gt; send the > > &gt; &amp;gt; document to > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; DaiLidong. > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > &amp;amp;amp;amp;gt; > > Third,&amp;amp;amp;amp;nbsp; I'll > > &gt; give you the error of > > &gt; &amp;gt; not using SSH > > &gt; &amp;gt; &amp;amp;gt; connection pool. > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > &amp;amp;amp;amp;gt; > > ------------------ 原始邮件 > > &gt; ------------------ > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > &amp;amp;amp;amp;gt; 发件人: > > "wenhemin"< > > &gt; [email protected]&amp;amp;amp;amp;gt;; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > &amp;amp;amp;amp;gt; 发送时间: > > 2020年5月14日(星期四) 晚上7:26 > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > &amp;amp;amp;amp;gt; 收件人: > > "裴龙武"<[email protected] > > &gt; &amp;amp;amp;amp;gt;; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > &amp;amp;amp;amp;gt; 主题: Re: > > [Feature] Support SSH > > &gt; Task and Support > > &gt; &amp;gt; dummy task > > &gt; &amp;gt; &amp;amp;gt; like airflow > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > &amp;amp;amp;amp;gt; Great! > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > &amp;amp;amp;amp;gt; I think, > > Can ssh tasks be > > &gt; merged into shell > > &gt; &amp;gt; tasks,&amp;amp;amp;amp;nbsp; > > &gt; &amp;gt; &amp;amp;gt; execute > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; script > locally or remotely, > > Configure on the > > &gt; front end. > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > &amp;amp;amp;amp;gt; About ssh > > connect pool, I did > > &gt; not find it > > &gt; &amp;gt; necessary to use > > &gt; &amp;gt; &amp;amp;gt; the > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > connection pool. > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > &amp;amp;amp;amp;gt; BTW, Look > > at the code to > > &gt; introduce additional > > &gt; &amp;gt; jar packages, > > &gt; &amp;gt; &amp;amp;gt; You also > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; need to > ensure that open > > source can use the > > &gt; license of this > > &gt; &amp;gt; jar > > &gt; &amp;gt; &amp;amp;gt; package. > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; 在 > > &gt; 2020年5月14日,16:20,裴龙武 < > > &gt; &amp;gt; [email protected] <mailto: > > &gt; &amp;gt; &amp;amp;gt; [email protected] > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; 写道: > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; 1. The > > &gt; priority between these tasks > > &gt; &amp;gt; is also depended > > &gt; &amp;gt; &amp;amp;gt; on the > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; dolphin > DAG define. When the > > front task is not > > &gt; finished, it > > &gt; &amp;gt; not > > &gt; &amp;gt; &amp;amp;gt; execute > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; next task. > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; 2. I extend > > &gt; ssh task. I also use > > &gt; &amp;gt; local params to > > &gt; &amp;gt; &amp;amp;gt; config ssh host, > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; user and > password. > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; E.g: > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; public static > > &gt; AbstractTask > > &gt; &amp;gt; &amp;amp;gt; newTask(TaskExecutionContext > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > taskExecutionContext, Logger > > logger) > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp; > > &gt; &amp;gt; throws > > &gt; &amp;gt; &amp;amp;gt; IllegalArgumentException { > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp; > > Boolean > > &gt; &amp;gt; enable = > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; > > &gt; > > > JSONUtils.parseObject(taskExecutionContext.getTaskParams()).getBoolean("enable"); > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp; > > if > > &gt; &amp;gt; (enable != null > > &gt; &amp;gt; &amp;amp;gt; > &amp;amp;amp;amp;amp;&amp;amp;amp;amp;amp; > > enable == false ) { > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp; > > &gt; &amp;gt; return new > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > DummyTask(taskExecutionContext, logger); > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp; > > } > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp; > > switch > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; > > &gt; > > > (EnumUtils.getEnum(TaskType.class,taskExecutionContext.getTaskType())) { > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp; > > &gt; &amp;gt; case SHELL: > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp; > > &gt; &amp;gt; &amp;amp;gt; return new > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > ShellTask(taskExecutionContext, logger); > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp; > > &gt; &amp;gt; case > > &gt; &amp;gt; &amp;amp;gt; PROCEDURE: > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp; > > &gt; &amp;gt; &amp;amp;gt; return new > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > ProcedureTask(taskExecutionContext, logger); > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp; > > &gt; &amp;gt; case SQL: > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp; > > &gt; &amp;gt; &amp;amp;gt; return new > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > SqlTask(taskExecutionContext, > > logger); > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp; > > &gt; &amp;gt; case MR: > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp; > > &gt; &amp;gt; &amp;amp;gt; return new > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > MapReduceTask(taskExecutionContext, logger); > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp; > > &gt; &amp;gt; case SPARK: > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp; > > &gt; &amp;gt; &amp;amp;gt; return new > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > SparkTask(taskExecutionContext, logger); > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp; > > &gt; &amp;gt; case FLINK: > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp; > > &gt; &amp;gt; &amp;amp;gt; return new > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > FlinkTask(taskExecutionContext, logger); > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp; > > &gt; &amp;gt; case PYTHON: > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp; > > &gt; &amp;gt; &amp;amp;gt; return new > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > PythonTask(taskExecutionContext, logger); > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp; > > &gt; &amp;gt; case HTTP: > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp; > > &gt; &amp;gt; &amp;amp;gt; return new > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > HttpTask(taskExecutionContext, > > logger); > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp; > > &gt; &amp;gt; case DATAX: > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp; > > &gt; &amp;gt; &amp;amp;gt; return new > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > DataxTask(taskExecutionContext, logger); > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp; > > &gt; &amp;gt; case SQOOP: > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp; > > &gt; &amp;gt; &amp;amp;gt; return new > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > SqoopTask(taskExecutionContext, logger); > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp; > > &gt; &amp;gt; case SSH: > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp; > > &gt; &amp;gt; &amp;amp;gt; return new > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > SSHTask(taskExecutionContext, > > logger); > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp; > > &gt; &amp;gt; default: > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp; > > &gt; &amp;gt; &amp;amp;gt; logger.error("unsupport task > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; type: {}", > > taskExecutionContext.getTaskType()); > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp; > > &gt; &amp;gt; &amp;amp;gt; throw new > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > IllegalArgumentException("not > > support task > > &gt; type"); > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp; > > } > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; } > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; 3. I am not > > &gt; sure that it supports > > &gt; &amp;gt; window or not. > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; ------------------ 原始邮件 > > &gt; &amp;gt; ------------------ > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; 发件人: > > &gt; "wenhemin"<[email protected] > > &gt; &amp;gt; <mailto: > > &gt; &amp;gt; &amp;amp;gt; [email protected] > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; 发送时间: > > &gt; 2020年5月14日(星期四) 下午3:46 > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; 收件人: "裴龙武"< > > &gt; [email protected] > > &gt; &amp;gt; <mailto:[email protected] > > &gt; &amp;gt; &amp;amp;gt; > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; 主题: Re: > > &gt; [Feature] Support SSH Task > > &gt; &amp;gt; and Support dummy > > &gt; &amp;gt; &amp;amp;gt; task like > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; airflow > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; Sorry, My > > &gt; previous description is > > &gt; &amp;gt; not very clear. > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; I want to ask > > &gt; some questions: > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; 1.How to > > &gt; control the priority > > &gt; &amp;gt; between ssh tasks? > > &gt; &amp;gt; &amp;amp;gt; There may be > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; some ssh > tasks that have been > > waiting for > > &gt; execution. > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; 2.I understand > > &gt; what you want to > > &gt; &amp;gt; solve is the problem > > &gt; &amp;gt; &amp;amp;gt; of executing > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; remote > ssh scripts in batches. > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp; > > So, not > > &gt; &amp;gt; sure how to use this > > &gt; &amp;gt; &amp;amp;gt; function. > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; 3.I don't know > > &gt; if this supports > > &gt; &amp;gt; windows system. > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; 在 > > 2020年5月13日,20:56,裴龙武 < > > &gt; &amp;gt; [email protected] > > &gt; &amp;gt; &amp;amp;gt; <mailto: > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > [email protected] > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; 写道: > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; I > use > > spin lock. Here > > &gt; &amp;gt; is my code. Of course > > &gt; &amp;gt; &amp;amp;gt; , it's not > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; perfect. > I just do a test. To > > my surprise, it > > &gt; is the result > > &gt; &amp;gt; of the > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; execution > is the same as the > > AirFlow > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > > 我通过模拟自选锁方式实现,附件中是我的代码,当然,这并不完善。我拿这个做了测试。令我惊喜的是,我得到了和 AirFlow > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; 相同的结果。 > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > ------------------ 原始邮件 > > &gt; &amp;gt; ------------------ > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > 发件人: > > "whm_777"< > > &gt; &amp;gt; [email protected] <mailto: > > &gt; &amp;gt; &amp;amp;gt; [email protected] > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > 发送时间: > > 2020年5月13日(星期三) > > &gt; &amp;gt; 晚上7:21 > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > 收件人: > > "裴龙武"< > > &gt; &amp;gt; [email protected] <mailto: > > &gt; &amp;gt; &amp;amp;gt; [email protected] > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > 主题: Re: > > [Feature] > > &gt; &amp;gt; Support SSH Task and > > &gt; &amp;gt; &amp;amp;gt; Support dummy task > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; like > airflow > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > You can > > modify the > > &gt; &amp;gt; maximum number of linux > > &gt; &amp;gt; &amp;amp;gt; ssh connections. > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; If > use > > ssh connection > > &gt; &amp;gt; pool, How to control > > &gt; &amp;gt; &amp;amp;gt; the priority of > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; ssh? > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > 在 > > &gt; &amp;gt; 2020年5月13日,18:01,裴龙武 < > > &gt; &amp;gt; &amp;amp;gt; [email protected] <mailto: > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > [email protected] > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; 写道: > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > First 3Q, > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; I&amp;amp;amp;amp;nbsp; use more than 100 > task > > &gt; &amp;gt; &amp;amp;gt; node. But SSH connections > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; are > limited. > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; > > &gt; > > > 我是使用了100多个任务节点,但服务器SSH连接是有限制的,超过后,就会报错了。下面是我扩展SSH任务节点后的一张截图,另外这个DAG是我从AirFlow转换过来的。 > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; <[email protected] > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; ------------------ 原始邮件 > > &gt; &amp;gt; &amp;amp;gt; ------------------ > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > 发件人: > > &gt; &amp;gt; "whm_777"<[email protected] > > &gt; &amp;gt; &amp;amp;gt; <mailto:[email protected] > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > 发送时间: > > &gt; &amp;gt; 2020年5月13日(星期三) 下午5:50 > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > 收件人: "裴龙武"< > > &gt; &amp;gt; [email protected] <mailto: > > &gt; &amp;gt; &amp;amp;gt; [email protected] > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > 主题: Re: > > &gt; &amp;gt; [Feature] Support SSH Task > > &gt; &amp;gt; &amp;amp;gt; and Support dummy task > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; like > airflow > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > E.g. > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; rtn_code=`ssh -o > > &gt; &amp;gt; &amp;amp;gt; ServerAliveInterval=60 -p xxxx > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > [email protected] <mailto: > > &gt; [email protected]&amp;amp;amp;amp;gt; > > &gt; &amp;gt; ‘shell > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > command&amp;amp;amp;amp;nbsp; > > &gt; &amp;amp;amp;amp;gt;/dev/null > > &gt; &amp;gt; > 2&amp;amp;amp;amp;gt;&amp;amp;amp;amp;amp;1; echo $?'` > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > if [ > > &gt; &amp;gt; "$rtn_code" -eq 0 ]; then > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp; > > &gt; &amp;gt; &amp;amp;gt; echo "成功" > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp; > > &gt; &amp;gt; &amp;amp;gt; exit 0 > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > else > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp; > > &gt; &amp;gt; &amp;amp;gt; echo "失败" > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp;&amp;amp;amp;amp;nbsp; > > &gt; &amp;gt; &amp;amp;gt; exit 1 > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > fi > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > Batch shell > > &gt; &amp;gt; command is not supported. > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > Multiple > > &gt; &amp;gt; servers can be split into > > &gt; &amp;gt; &amp;amp;gt; multiple task nodes. > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; 在 2020年5月13日,17:40,裴龙武 < > > &gt; &amp;gt; &amp;amp;gt; [email protected] <mailto: > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > [email protected] > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; 写道: > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; Could you give me a > > &gt; &amp;gt; &amp;amp;gt; example,3Q. 能否给我一个例子,谢谢! > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; By the way, I have more than > > &gt; &amp;gt; &amp;amp;gt; 100 tasks in one DAG. > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; These > tasks connect two other > > server to > > &gt; execute. So SSH > > &gt; &amp;gt; tasks must > > &gt; &amp;gt; &amp;amp;gt; have > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; pool to > manager. Now I use > > JSch and realize a > > &gt; simple pool. > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; 顺带说一下,在我的实际场景中,我有100多个 SSH > > &gt; &amp;gt; &amp;amp;gt; 任务,这些任务连接两台任务服务器进行任务执行。所以 > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; SSH > 任务进行连接时,必须使用连接池进行管理。当前我使用 > > JSch,并实现了一个简单的连接池。 > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; ------------------ 原始邮件 > > &gt; &amp;gt; &amp;amp;gt; ------------------ > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; 发件人: "wenhemin"< > > &gt; &amp;gt; &amp;amp;gt; [email protected] <mailto: > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > [email protected] > > &gt; &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; 发送时间: 2020年5月13日(星期三) 下午5:24 > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; 收件人: "dev"< > > &gt; &amp;gt; &amp;amp;gt; > [email protected] <mailto: > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > [email protected] > > &gt; &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; 主题: Re: [Feature] Support > > &gt; &amp;gt; &amp;amp;gt; SSH Task and Support dummy > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; task like > airflow > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; The shell node is supports > > &gt; &amp;gt; &amp;amp;gt; remote calling, and get > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; the > remote command result code. > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; 在 > > &gt; &amp;gt; &amp;amp;gt; 2020年5月13日,15:16,裴龙武 < > [email protected] > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; <mailto: > [email protected] > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; 写道: > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; Dear ALL: > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; Support Linux SSH > > &gt; &amp;gt; &amp;amp;gt; Task 支持 Linux SSH 任务 > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; 场景描述:当前项目中,工作流的任务的目标是执行不同服务器 > Shell 脚本,Shell > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > 脚本是保存在业务服务器的固定目录。当 Worker > > &gt; 调度执行时,需要通过固定用户登录这些服务器,然后执行 Shell > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > 脚本并获取这些任务执行的状态,其中服务器地址、用户名、密码可配置。 > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; For example, in my > > &gt; &amp;gt; &amp;amp;gt; project, the workflow's tasks > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; want to > execute shell scripts > > where are in > > &gt; different server's > > &gt; &amp;gt; &amp;amp;gt; different > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > directory. When worker execute > > these shell > > &gt; scripts, it must > > &gt; &amp;gt; use the > > &gt; &amp;gt; &amp;amp;gt; same > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; user to > login these server. > > Also, the worker > > &gt; can get the > > &gt; &amp;gt; executing > > &gt; &amp;gt; &amp;amp;gt; state of > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; these > server. We can config > > these server 's > > &gt; host,user and > > &gt; &amp;gt; password. > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; SSH Task is very > > &gt; &amp;gt; &amp;amp;gt; useful for most user SSH > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > 任务对大多数用户是非常有用的 > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; 分布式调度任务所执行的 Shell > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > 脚本是处于不同的业务服务器,都有其固定的业务,这些业务服务器不是 Worker,只是需要 > > &gt; Worker > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > 调度执行,我们只需要传递不同的参数,让服务器执行任务脚本即可。 > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; In > > &gt; &amp;gt; &amp;amp;gt; dolphinscheduler, the most > executing tasks > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; are in > different servers who > > are not workers. > > &gt; These servers > > &gt; &amp;gt; also have > > &gt; &amp;gt; &amp;amp;gt; their > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; different > fixed services. We > > just have to pass > > &gt; different > > &gt; &amp;gt; parameters to > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; schedule > these shell scripts > > to execute. > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; Python has a module > > &gt; &amp;gt; &amp;amp;gt; to execute ssh script Python > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > 有固定的工具包,可执行这些SSH Shell 脚本 > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; Python > > &gt; &amp;gt; &amp;amp;gt; 有一个可执行远程服务器SSH > Shell脚本的模块,其名字为:paramiko。 > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; Python has a module > > &gt; &amp;gt; &amp;amp;gt; that can execute SSH Shell > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; script. > It's paramiko. > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; Others 其他内容 > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > 我发现之前的改进功能中也有关于这个的描述,不过相对简单。功能更新地址 > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; I found this > > &gt; &amp;gt; &amp;amp;gt; described in previous feature, > but > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; it was > relatively simple. > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; Feature URL > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; 另外,我通过 Shell Task > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > 方式去执行远程任务会非常不便,下面是我的脚本,不知道是否有更好的方式。 > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; In addition, it is > > &gt; &amp;gt; &amp;amp;gt; very inconvenient for me to > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; perform > remote tasks through > > Shell Task. Here > > &gt; is my script. > > &gt; &amp;gt; I don't > > &gt; &amp;gt; &amp;amp;gt; know if > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; there's a > better way. > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; sshpass -p > > &gt; &amp;gt; &amp;amp;gt; 'password' ssh user@host echo > 'ssh > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; success' > echo 'Hello World' > > &gt; -&amp;amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > /home/dolphinscheduler/test/hello.txt > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; echo 'end' > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; Support dummy task > > &gt; &amp;gt; &amp;amp;gt; like airflow 支持像 Airflow > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; 中的虚拟任务 > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; 场景描述:项目中,有已经产品化的 > > &gt; &amp;gt; &amp;amp;gt; DAG 文件,DAG > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; > > 文件中包括不同的模块,这些模块之间的有些点是相互依赖的,有些不是,在用户购买不同模块时,需要把未购买模块且其他已购模块未依赖的点设置为 > > &gt; &amp;gt; &amp;amp;gt; Dummy > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; > > &gt; > > > Task,这样实际这些任务就不会执行,这样设置的好处是产品统一性和图的完整性,在AirFlow中,这些是通过DummyOperator完成的。 > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; For example, in my > > &gt; &amp;gt; &amp;amp;gt; project, it has a productized > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; DAG file. > The file contains > > different modules, > > &gt; some of which > > &gt; &amp;gt; are > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > interdependent and some of > > which are not. When > > &gt; customers > > &gt; &amp;gt; purchase > > &gt; &amp;gt; &amp;amp;gt; different > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; modules, > we need to set some > > tasks as dummy > > &gt; tasks, which > > &gt; &amp;gt; some modules > > &gt; &amp;gt; &amp;amp;gt; are > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; not > purchased and the > > purchased module is not > > &gt; dependent. > > &gt; &amp;gt; Because of > > &gt; &amp;gt; &amp;amp;gt; this > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; setting, > these dummy tasks are > > actually not > > &gt; executed. The > > &gt; &amp;gt; benefits of > > &gt; &amp;gt; &amp;amp;gt; this > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; setup are > product unity and > > diagram integrity. > > &gt; In airflow, > > &gt; &amp;gt; these task > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; execute > by dummy operator. > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; ** Realize 实现方式** > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; Dummy Task > > &gt; &amp;gt; &amp;amp;gt; > 本身实现很简单,只是需要与其他任务配合使用,但任务执行方式设置为 > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; dummy > 时,实际的任务不执行,执行 Dummy Task。 > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; Dummy Task is easy > > &gt; &amp;gt; &amp;amp;gt; to realize, but it need to > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; use with > other different > > tasks. When the task's > > &gt; executed > > &gt; &amp;gt; type is set > > &gt; &amp;gt; &amp;amp;gt; to > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; dummy > type, the task are > > executed as a dummy > > &gt; task and the > > &gt; &amp;gt; real task > > &gt; &amp;gt; &amp;amp;gt; is not > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; executed. > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; 顺带说一下,因为项目着急测试使用,我Fork了开发版本,实现两种任务类型。在后续的版本中是否能够支持。 > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;amp;amp;gt; By the way,I > > &gt; &amp;gt; &amp;amp;gt; already realize these > > two&amp;amp;amp;amp;amp;nbsp; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; features > in my fork > > &gt; branch.&amp;amp;amp;amp;amp;nbsp;Whether the > > &gt; &amp;gt; follow-up > > &gt; &amp;gt; &amp;amp;gt; release can be > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; supported > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; > > &gt; &amp;gt; > > &gt; > > > <SSHClient.java&amp;amp;amp;amp;gt;<SSHPool.java&amp;amp;amp;amp;gt;<SSHTask.java&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > > &amp;amp;amp;amp;gt;&amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > &amp;amp;amp;amp;gt; > > &gt; &amp;gt; &amp;amp;gt; &amp;amp;amp;gt; > &amp;amp;amp;amp;gt; > > &gt; <项目场景中关于Dolphin的一些扩展点.pdf&amp;amp;amp;amp;gt;
