2017-12-18 10 views
0

Was ich vorhabe, ist, die Jobdetails von jenkins zu bekommen und sie in "mongo DB" alle "X" Minuten zu speichern. Ich muss einen HTTP.call(JenkinsURL) machen, den ich kenne. Mein Problem nennt es für bestimmte Intervalle.Wie mache ich einen jenkins Anruf, um die Job Details alle 'X' Minuten im Meteor zu erhalten?

buildDetails=HTTP.call('GET',buildURL); 

buildURL hat die Aufgabe URL Jenkins. Ich fand diese link, die einen Überblick über den Code für mein Problem gibt, aber ich weiß nicht, wie und wo ich diesen Code platzieren sollte, damit es funktioniert. Ich habe alle Möglichkeiten ausprobiert.

Gibt es irgendeine Methode in Meteor, die es möglich macht, einen spezifischen Code auszuführen, der für jede X min ausgeführt wird?

+0

* ich alle Möglichkeiten ausprobiert * - erklären Sie. Sie können '' '' Meteor.setInterval() '' 'verwenden, um jedes X Zeitintervall etwas auszuführen. – blueren

+0

Ich meine, dass ich die ganze Kombination des Codes in der Verbindung versucht habe, die ich angegeben habe. Ich habe versucht, die Meteor.setInterval(), es funktioniert wie definiert, aber wenn ich aktualisieren und zu einer anderen Seite navigieren, wird es aufhören, den interval() Code auszuführen. – Snkini

+0

Das wäre, weil Sie es vom Client anrufen. Gibt es einen bestimmten Grund, dies vom Kunden zu tun? Normalerweise sollte es für Ihren Anwendungsfall vom Server aus aufgerufen werden, meinen Sie nicht? – blueren

Antwort

1

Gibt es irgendeine Methode in Meteor, die es ermöglichen kann, einen bestimmten Code auszuführen, der für jedes X min ausgeführt wird?

Ja, gibt es.

Meteor.setInterval das kann verwendet werden, um etwas wiederholt jedes X-Intervall der Zeit zu tun.

Sie können Ihren HTTP-Aufruf auf dem Server speichern. ZB:

Meteor.startup({function(){ 

    var timerID = Meteor.setInterval(function(){ 
        buildDetails=HTTP.call('GET',buildURL); 
        // and other things 
        }, 60000) //60000ms = 1 min 
       } 
}); 

Wenn Sie die Timer-Funktion beenden möchten, rufen Sie einfach Meteor.clearInterval

Meteor.clearInterval(timerID); 
+0

Fehler erhalten wie = "unerwartet, erwartet", am Meteor.setInterval (getAndStore() { – Snkini

+0

Mein schlechtes. Ich hatte die falsche Syntax für '' 'getAndStore()' ''. Es sollte nur eine '' 'Funktion''' sein. Ich habe es behoben. Auch das soll genau so funktionieren, wie Sie es wollen Ich bin mir nicht sicher, warum Sie eine Seitenaktualisierung macht dies zu arbeiten aufhören. Es sollte idealerweise weiterarbeiten, bis die Anwendung heruntergefahren wird, oder Sie rufen explizit '' 'clearInterval''' – blueren

+0

Tq, es funktioniert wie erwartet , aber das Problem ist, dass wenn andere serverseitige Code (Helfer, Ereignisse und andere Funktion) ausgeführt wird, GetAndStore() warten wird, bis andere ausgeführt wird, und wenn ich eine größere Anzahl von HTTP.call() habe, beginnt das Intervall von der ursprünglichen Anzahl es gibt eine andere Möglichkeit, es im Hintergrund wie Thread laufen lassen pls bieten alle Referenz, wenn Sie wissen .. – Snkini

Verwandte Themen