2017-08-09 96 views
0

我想要在Jenkins中獲得所有作業的觸發時間,以便我可以決定何時安排它。 以下腳本顯示一個對象,但無法獲取計劃時間和日期。Groovy腳本獲取Jenkins觸發時間

import org.jvnet.hudson.plugins.groovypostbuild.*; 
import jenkins.plugins.slack.*; 
jobs = hudson.model.Hudson.instance.getAllItems(FreeStyleProject) 
for (job in jobs) { 
      timeT=job.triggers(); 
      println "job: " + job.getFullName() + " " + timeT 
} 

回答

-1

可能爲時已晚,但是這個工程(從https://wiki.jenkins.io/display/JENKINS/Display+timer+triggers小收養)

import hudson.model.* 
import hudson.triggers.* 

for(item in Hudson.instance.items) { 
    if(item.disabled || item instanceof com.cloudbees.hudson.plugins.folder.Folder) { 
    continue; 
    } 
    for(trigger in item.triggers.values()) { 
     if(trigger instanceof TimerTrigger) { 
      println("--- Timer trigger for " + item.name + " ---") 
      println(trigger.spec + '\n') 
     } 
    } 
} 

創建此輸出:

--- Timer trigger for XXX --- 
30 4 * * 1-5 

--- Timer trigger for YYY --- 
0 6 * * 1-5 

而且更加複雜的腳本(從一些小的收養相同的來源)

import hudson.model.* 
import hudson.triggers.* 

class Timer { 
    String name; 
    String spec; 
    int minute; 
    int hour; 

    Timer(pname,pspec) { 
    name=pname; 
    spec=pspec; 
    def parts=pspec.split(" ") 
    minute=parts[0].toInteger() 
    hour=parts[1].toInteger() 
    } 
} 

def timers = [] 

for(item in Hudson.instance.items) { 
    if(item instanceof com.cloudbees.hudson.plugins.folder.Folder) { 
    continue; 
    } 
    for(trigger in item.triggers.values()) { 
    if(trigger instanceof TimerTrigger) { 
     try { 
     def timer=new Timer(item.name,trigger.spec) 
     timers.add(timer) 
     } catch (Exception ex) { 
     println(trigger.spec + " " + item.name) 
     } 
    } 
    } 
} 

timers.sort{a,b -> a.hour <=> b.hour ?: a.minute <=> b.minute} 
for (timer in timers) { 
    printf("%02d:%02d %s\n",timer.hour,timer.minute,timer.name) 
} 

創建:

00:30 MyFixedScheduledJob 
    @midnight MyAroundMidnightJob 
    H 06 * * 1-5 MyJobWithHash 
+0

雖然此鏈接可以回答這個問題,最好是在這裏有答案的主要部件,並提供鏈接以供參考。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [來自評論](/ review/low-quality-posts/18473946) – Pedram

+0

@Pedram謝謝你指出 - 我已經按照你的建議正確地改變了它。 –