2017-02-02 5 views
0

私はパラレル宣言とても似ています。ジェンキンス並列基準

def myFunc(num): 
    sh """\ 
mkdir -p ${num} 
""" 
node('myspecialslave') { 
    parallel(first: { 
     step(...) 
     myFunc(1) 
    }, second: { 
     step(...) 
     myFunc(2) 
    }) 
} 

私はもはや全てで並列に実行されているようfirstsecondを参照してください。私は、関数呼び出しであること延長しない場合は今 、。 私の質問は - クロージャが並行して実行されるようにするための基準は何ですか?

+0

それぞれに「ノード」を割り当てていますか?彼らはあなたが割り当てて、エグゼキュータと十分な利用可能な限り、並行して実行する必要があります。コードの詳細を表示すると役立ちます。 – StephenKing

+0

'myFunc'には' sh'呼び出しのみが含まれています。 – abergmeier

+0

Ansノードブロックはどこにありますか? – StephenKing

答えて

0

このノードをすべて同じノード上で実行しているようです。

代わりに、並列ブランチのそれぞれの中にexecutorを割り当てたい:

parallel(first: { 
    node { 
     step(...) 
     myFunc(1) 
    } 
}, second: { 
    node { 
     step(...) 
     myFunc(2) 
    } 
}) 

も参照してください。このarticle

+0

しかし、両方の 'myFunc'呼び出しが現在のノードで実行されます。問題の記事から、最初の例でも同様です。 – abergmeier

+0

すべてが並行して実行できるかどうかはわかりません。あなたは並行して 'sleep(30)'を試しましたか? – StephenKing

+0

多分、ノード上のエグゼキュータの数を増やして、複数のジョブを並行して実行できるようにすることができます。 – tarunkt