Bir Jenkins master'ım ve ona bağlı statik (!) Bir köle var. Yani, her düğümün yöneticileri yoktur. Kölenin köleyi yeniden başlatması için kölenin belirli bir işi ne kadar sürede ele aldığını izleyerek asılı köleleri tespit etmeye çalışıyorum. Burada Jenkins'in Groovy'un belgelerini dikkatlice okudum: http://javadoc.jenkins-ci.org/ Meşgul bir köleyi tanımlamanın herhangi bir yolunu bulamadım. Yapılabildiğini bulduğum tek yol, yalnızca exectors kullanılıyorsa (buna benzer şekilde: https://wiki.jenkins-ci.org/display/JENKINS/Find+builds+currently+running+that+has+been+executing+for+more+than+N+seconds) geçerlidir.Belirli bir jenkins master için asılı slave nasıl tanımlanır
Herhangi bir fikir nasıl yapabilirim?
düzenlendi: Bu sistem Groovy script kullanarak benim çözüm: Kendim test edilmiş, ancak Computer sınıftan Computer.countBusy()
veya Computer.isIdle()
uygulamak için denemek değil
import hudson.model.*
import hudson.node_monitors.*
import hudson.slaves.*
import java.util.concurrent.*
import jenkins.model.Jenkins
import hudson.util.RemotingDiagnostics
jenkins = Hudson.instance
import javax.mail.internet.*;
import javax.mail.*
import javax.activation.*
import hudson.*;
import hudson.tasks.*;
import hudson.model.AbstractBuild
import hudson.Launcher
import hudson.model.BuildListener
import hudson.FilePath
import groovy.io.FileType
import jenkins.util.VirtualFile;
int MAX_ALLOWED_DURATION_IN_SECONDS = 60 * 30 // 30 minutes
for (computer in jenkins.model.Jenkins.instance.computers)
{
for(e in computer.executors)
{
if(e.isBusy())
{
int durationInSeconds = (System.currentTimeMillis() - e.executable.getStartTimeInMillis())/1000.0
if(durationInSeconds > MAX_ALLOWED_DURATION_IN_SECONDS)
{
print "restarting slave:"
println computer.getName()
println "\n\n\n"
def channel = computer.getChannel()
println RemotingDiagnostics.executeGroovy(""""cmd /c shutdown -r".execute().text""",channel)
break
}
}
}
}
println "Done"
return 0
Sorunuzun başlığı "verilen jenkins master için nasıl takıldığını belirleme" olabilir. – Jayan
Düzenlendi ... herhangi bir fikir? – MROB