我有一個oozie動作,它具有定義的輸入路徑。如果此路徑不存在,我想將輸入設置爲某個默認路徑。如何使用輸入路徑取決於標誌的Oozie動作
有沒有辦法讓路徑取決於條件?我知道我可以爲每個可能的輸入複製動作,並具有路由到正確動作的條件。但是,當具有許多條件路徑時,這是不可縮放的。
我有一個oozie動作,它具有定義的輸入路徑。如果此路徑不存在,我想將輸入設置爲某個默認路徑。如何使用輸入路徑取決於標誌的Oozie動作
有沒有辦法讓路徑取決於條件?我知道我可以爲每個可能的輸入複製動作,並具有路由到正確動作的條件。但是,當具有許多條件路徑時,這是不可縮放的。
Oozie允許您使用EL表達式,其中包括條件運算符?:
。這使得在指定路徑不存在時實現默認路徑相當直接:
${fs:exists(specified_path) ? specified_path : default_path}
您可以有一個決策節點如下。如果找到並找不到輸入路徑,則在其中控制您的操作。如果找到,您可以在行動中使用路徑。如果未找到,請在具有該控件的下一個操作中設置默認輸入路徑。
<decision name="isFileExists">
<switch>
<case to="yourNextAction">
${fs:exists(yourInputPath)}
</case>
<default to="yourNextActionIfInputNotFound" />
</switch>
</decision>
感謝您的回覆。 如何設置工作流程內的默認輸入路徑? 看起來你的建議意味着複製每個可能輸入的動作。換句話說,似乎「yourNextAction」和「yourNextActionIfInputNotFound」幾乎是重複的。 – Shaharg 2015-02-11 09:46:33