NEWS
Frage an Java Experten zum Script.
-
Hallo Leute,
ich versuche ein Script für meine Bedürfnisse anzupassen.
Das Java-Script soll alle 3 min. von einer Webseite den Zählerstand abfragen.
Ich finde im Java Script folgende Zeile:
schedule ("* * * * *", function(){ // alle 3 Minuten aufrufen
Welcher Wert ist Zur Zeit eingestellt?
Handels sich hier um ein Cron-Daemon Eintrag???
Wenn ich den Wert auf drei min. eingestellt haben möchte, sollte es nicht so aussehen? Oder liege ich da komplet daneben…?
*/3 * * * *
schedule ("*/3 * * * *", function(){ // alle 3 Minuten aufrufen
var request = require('request'); var parseString = require('xml2js').parseString; var url="http://192.168.1.43"; // hier die Adresse der Webseite eintragen var GaszaehlerId = "Gaszaehler.Wert"; // Der Wert steht in "javascript.0." function processData(body){ parseString(body, function (err, result) { // log(JSON.stringify(result.MyHome.ESP8266_GasMeter[0].data[4].$.value)); if (!err) setState(GaszaehlerId,result.MyHome.ESP8266_GasMeter[0].data[4].$.value); }); } createState(GaszaehlerId, 0, false, { type:"number", unit:"m³" }); schedule ("* * * * *", function(){ // alle 3 Minuten aufrufen request({ uri: url, method: "GET", timeout: 10000, followRedirect: true, maxRedirects: 10 }, function(error, response, body) { if (!error) { if (response.statusCode == 200) { processData(body); } } else log("Fehler: "+error); }); })
-
JA, das hast du vollkommen richtig erkannt
schedule ("*/3 * * * *", function(){
ruft die Funktion alle 3 Minuten auf.
-
bin kein Experte, sollte aber stimmen.
Teil 1 sind die Minuten. Du willst, dass es immer bei durch drei teilbaren Minuten ausgeführt wird.
-
Danke Thisoft,
auf Dich kann ma sich immer verlassen.
Kannst Du mir noch mal sagen, was eingestellt worden war?
Etwa nur einmal beim Reboot ?
* * * * * Befehl der ausgeführt werden soll - - - - - | | | | | | | | | +----- Wochentag (0 - 7) (Sonntag ist 0 und 7; oder Namen, siehe unten) | | | +------- Monat (1 - 12) | | +--------- Tag (1 - 31) | +----------- Stunde (0 - 23) +------------- Minute (0 - 59; oder Namen, siehe unten)
-
was eingestellt worden war? Etwa nur einmal beim Reboot ? `
Nein, jede Minute. -
Danke Paul53
habe noch im Netzt so ein Beispiel gefunden…
Einen Cronjob jede Minute ausführen
/1 * * * * /user/skript-pfad/skript.sh
bin jetzt aber komplett verwirrt...
es dürfen max. 5 Sternchen sein.... Sterne stehen für immer! Richtig?
Für "alle drei min" sollte das dann so aussehen:
/3 * * * *
Für "jede min." /1 * * * *
Kollege Thisoft gibt aber noch mal das hier:
schedule ("*/3 * * * *", function(){
Ist dort vorne ein Stern nicht zuviel? Versehen oder doch richtig?
Sollte es nicht so Aussehen?
schedule ("/3 * * * *", function(){
Sorry für die Fragen.
* * * * * Befehl der ausgeführt werden soll - - - - - | | | | | | | | | +----- Wochentag (0 - 7) (Sonntag ist 0 und 7; oder Namen, siehe unten) | | | +------- Monat (1 - 12) | | +--------- Tag (1 - 31) | +----------- Stunde (0 - 23) +------------- Minute (0 - 59; oder Namen, siehe unten)
-
https://github.com/node-schedule/node-s … scheduling
Der JavaScript-Adapter nutzt intern das obige Modul, was mit einem 6-stelligen Code Sekunden unterstützt.
-
Geil, demnach scheint die Antwort vom Thisoft richtig sein Stimmts?
schedule ("*/3 * * * *", function(){
-
Woops, ich hab da wohl ein Leerzeichen zu viel gesehen. Kommando zurück!
"*/3 * * * *" bedeutet alle 3 Minuten. Ob das gleichbedeutend ist mit "/3 * * * *" weiß ich allerdings nicht, das habe ich so noch nicht gesehen. Der Entwickler des Pakets gibt ebenfalls folgendes Beispiel:
> Execute a cron job every 5 Minutes = */5 * * * *
Trotzdem kannst du z.b. mit "4 */5 * * * *" z.B. alle 5 Minuten zur 4. Sekunde etwas ausführen lassen.
-
es dürfen max. 5 Sternchen sein `
In neueren Versionen dürfen es optional auch 6 Positionen sein mit der ersten Position für Sekunden.
@knopers1:Sterne stehen für immer! Richtig? `
Ja.
@knopers1:Kollege Thisoft gibt aber noch mal das hier:
schedule ("*/3 * * * *", function(){ `
Ich kenne auch nur diese Version für alle 3 Minuten. Das ohne Stern vor dem Schrägstrich kann funktionieren, aber da es nicht dokumentiert ist, würde ich es so nicht anwenden. -
Woops, ich hab da wohl ein Leerzeichen zu viel gesehen. Kommando zurück!
"*/3 * * * *" bedeutet alle 3 Minuten. Ob das gleichbedeutend ist mit "/3 * * * *" weiß ich allerdings nicht, das habe ich so noch nicht gesehen. Der Entwickler des Pakets gibt ebenfalls folgendes Beispiel:
> Execute a cron job every 5 Minutes = */5 * * * *
Trotzdem kannst du z.b. mit "4 */5 * * * *" z.B. alle 5 Minuten zur 4. Sekunde etwas ausführen lassen. `
woow, jetzt bin ich total verwirt…
Wenn das so ist, müßte es nicht so aussehen?
"4/5 * * * *"
Du hast ein Beispiel jetzt mit sieben Stellen angegeben. Stimmt das?
EDIT: Gut. Dann verbleibe ich eben bei der Theori vom Paul53
schedule ("*/3 * * * *", function(){ // Alle drei min.bozogen auf den 6 Stelligen Cronjob mit sekunden!
-
Du hast ein Beispiel jetzt mit sieben Stellen angegeben. Stimmt das? `
Nein, da ist kein Leerzeichen zwischen "*", "/" und "5":4 */5 * * * * ^ ^ ^ ^ ^
5 Leerzeichen, 6 Stellen