2015-09-25 15 views
5

Jenkinsでは私はシステムのGroovyスクリプトビルドステップを持っています。長時間実行しているスクリプトを取り消したり、ビルドがキャンセルされたかどうかを判断できるシステムのGroovyスクリプト内にいくつかのコードを持つ方法はありますか?システムGroovyスクリプトをキャンセルするにはどうすればいいですか

+2

関連する。 http://stackoverflow.com/questions/19070055/jenkins-job-running-system-groovy-script-how-to-respond-to-user-kill – Jayan

答えて

2

Jenkinsは、ビルドをキャンセルするときにスクリプトを実行しているスレッドを中断します。

スレッドの割り込みステータスを手動でcheckに設定し、特定の時点でスクリプトを中止することができます。

if (Thread.currentThread().interrupted()) { 
    throw new InterruptedException() 
} 

それとも、Groovyのは、例えば、スクリプト内ThreadInterrupt注釈を含むことにより、あなたのためにそれをやらせることができます

@groovy.transform.ThreadInterrupt 

また、どのキャッチブロックもInterruptedExceptionを呑み込まないようにしてください。

+0

私はJenkinsのパフォーマンスに大きな影響を与えているようです注釈。たぶんそれは偶然ではありますが、二度連続して起こりました.... –

+0

だから、私は目に会うよりもこれ以上あると思います。システムのGroovyスクリプトがスレッドを起動している場合は、終了する前にスレッドに関する何かを行う必要があります。私はまだそれらのすべてをキャプチャする方法はわかりませんが、私は学び、見つけ出すと思います.. –

+0

currentThread()はメソッドではなく、プロパティではありません、btw –

関連する問題