2011-12-14 160 views
0

我有一個問題。DATASTAGE:如何使用DSJOB並行運行更多實例作業

我想在腳本中並行運行同一作業的更多實例:我有一個循環,我在其中調用作業dsjob,但沒有選項「-wait」和「-jobstatus」。

我希望在腳本終止之前完成作業,但我不知道如何驗證作業實例是否終止。 我雖然要使用等待命令,但它不合適。

在此先感謝

回答

2

首先,你應該確保工作編譯選項中的「多重背景」選擇。

二:

#!/bin/bash 
. /home/dsadm/.bash_profile 

INVOCATION=(1 2 3 4 5) 

cd $DSHOME/bin 
for id in ${INVOCATION[@]} 
do 
     ./dsjob -run -mode NORMAL -wait test demo.$id 
done 

項目 - 測試

工作 - 演示

$ ID - 調用ID

兩線殼素文字:確保環境路徑能行得通。

0

像沒有-wait一樣運行作業,然後循環運行dsjob -jobinfo並解析輸出以獲得1或2的作業狀態。當所有作業返回此狀態時,它們全部完成。

不過,您可能會發現,在實際開始運行之前檢查作業的狀態,並且可能會提取舊狀態。在運行作業之前,您可以通過首先重置作業實例並等待「未運行」狀態來解決此問題。

0
  • 調用在循環中的作業,而無需等待或作業狀態選項

  • 你的循環後,由dsjob命令來檢查作業的狀態

示例 - dsjob -jobinfo項目名工作名。 invocationid

  • 你可以編碼一個循環,也可以使用sleep com普通話根據該

  • 寫你進一步的邏輯,每個作業

的地位,但其良好的創建工作序列與不同invoaction的IDS

的幫助,同時調用此多實例工作
  • 創建序列工作,如果這些是在相同的過程

  • 創建不同的序列或直接創建迪菲租用腳本以同時觸發這些作業,同時調用id和時間表。

最好的選擇創建其中每個事情將會得到創建了一個標準廣義腳本或得到的值作爲每輸入命令行參數

實施例 - 日誌JOBNAME +調用-ID

的基礎上的文件

然後爲不同的參數或調用安排相同的腳本。