Cron Job alle 45 Minuten mit Knoten-Cron
Ich bin mit Knoten-cron ausgeführt geplanten Aufgaben.
Ich will, dass die jobs laufen alle 45 Minuten, aber sein handeln seltsam
Hier ist das Muster, das ich verwende
'00 */45 * * * *'
Begann ich mein Skript an
Tue Jun 17 2014 08:17:39 GMT+0000 (GMT)
Hier sind die ersten paar Male der job ausgeführt wurde
1. Tue Jun 17 2014 08:45:03 GMT+0000 (GMT)
2. Tue Jun 17 2014 09:00:01 GMT+0000 (GMT)
3. Tue Jun 17 2014 09:45:02 GMT+0000 (GMT)
Dies ist definitiv nicht das, was ich erwartet oder will.
Alles was ich will, ist die Ausführung des Jobs alle 45 Minuten.
Kann mir jemand helfen mit dem Muster?
Danke 🙂
InformationsquelleAutor T. Rex | 2014-06-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du bist wahrscheinlich auf der Suche nach
Werden die Bereiche hier.
getestet, aber es scheint zu laufen, jede Sekunde so gut, was macht Sinn, weil die erste * Beim Start auf
17:50:18
es läuft bei18:00:01
18:00:02
etc ich werde versuchen, 00 anstelle des ersten *habe es auf Arbeit mit eine leichte Anpassung an das Sekunden-Feld, hier ist das Muster;
0 */45 * * * *
Wenn Sie können, nehmen Sie die Korrekturen, ich werde markieren Sie diese Antwort als akzeptiert.
Überlegen Sie, ob es wäre gerechter zu akzeptieren, eine Antwort auf die Frage, die Sie fragte, eher als eine, die dem string entspricht, der in Ihrer Frage, dass Sie sehr ausdrücklich gesagt nicht, die Ihre Anforderungen erfüllen. Es ist nichts falsch mit wechselnden Ihre Meinung über das, was Sie wan tun, aber wir sind nicht der Verstand der Leser. (BTW, würde Sie den Befehl ausführen, der alle 30 Minuten treffen Sie die überarbeiteten Anforderungen?)
InformationsquelleAutor Ben Fortune
Ich bin mehr vertraut mit cron als mit Knoten-cron, aber ich habe schon ein kurzer Blick in die Dokumentation.
Wenn ich es richtig verstehe, Knoten-cron verwendet eine syntax ähnlich der von cron, aber mit einem zusätzlichen "Sekunden" Feld ein. Also, wo ein cron-job haben könnte:
planen
some-command
alle 15 Minuten, Knoten-cron würde verwenden eine ähnliche syntax zum angeben der Zeit, zu laufen:(mit einem zusätzlichen Feld, um anzugeben, Sekunden), aber es führt den angegebenen JavaScript-Funktion, nicht ein externer Befehl.
In der standard-cron, es gibt keine syntax, angeben, die die Ausführung der Aufgabe alle 45 Minuten. Eine Spezifikation der
0/45 * * * *
würde einen job ausführen zweimal pro Stunde, bei 0 und 45 Minuten nach der vollen Stunde. Ein job laufen alle 45 Minuten (bei 00:00, 00:45, 01:30, 02:15, ..., d.h., 32-mal pro Tag) müsste man einplanen, alle 15 Minuten, und dann rufen Sie ein Skript, das überprüft die aktuelle Zeit, um zu entscheiden, ob etwas zu tun.Oder schreiben Sie eine erschöpfende Liste aller Zeiten, die Sie der Auftrag ausgeführt werden soll:
Ich würde auf jeden Fall ein script schreiben möchten, erstellen Sie diese Liste.
(Dies ist praktikabel, da in 24 Stunden passiert, um ein Vielfaches von 45 Minuten.
Sie konnte nicht noch etwas laufen alle 35 Minuten auf diese Weise.)
Einen ähnlichen Ansatz sollten für die Knoten-cron. Planen Sie die Funktion alle 15 Minuten ausgeführt, und eine Funktion aufzurufen, der überprüft die aktuelle Zeit zu entscheiden, ob Sie laufen. Sie können beispielsweise prüfen, ob die Anzahl der Minuten seit Mitternacht modulo 45 null ist. (Möchten Sie vielleicht, um damit für eine kleine Abweichung bei der Zeitplanung nicht genau.
Ich weiß nicht, JavaScript gut genug, um zu schlagen die beste Weg, um zu schreiben, diese Funktion, aber es sollte ziemlich unkompliziert.
Schreiben oder 28 Zeilen angeben, alle Zeiten, die Sie wollen, es zu führen.
InformationsquelleAutor Keith Thompson
Es ist keine direkte Möglichkeit, dies zu tun. Dennoch können wir das Ergebnis durch abfangen der Zeitplan mit Hilfe eines shell-Befehl innerhalb der Ziel-Skript.
Führen Sie zuerst das Skript alle 15 Minuten:
Dann, innerhalb der target_script, platzieren Sie den folgenden code vor dem eigentlichen codes:
InformationsquelleAutor Seff
Müssen Sie ein Skript schreiben, die als wrapper um zu entscheiden, ob der jeweilige Befehl ausgeführt werden soll auf alle 45 Minuten. Das ist 0, 45, 30 (= 45 + 45 - 60), 15 (= 30 + 45 - 60), 0 (= 15 + 45 - 60). so, die Minuten, um das Skript ausgeführt werden soll
0,15,30,45
.Den Befehl
date +%M
kann hilfreich sein, in dem shell-script.Sorry, ich habe keine Knoten-cron. Noch nie davon gehört. Die obige Methode ist für cron. Vielleicht node-cron hat einige zusätzliche syntax, die cron nicht. Ich habe ein ähnliches problem, und das Handbuch gelesen haben von crontab. Ich glaube nicht, dass es möglich ist, mit cron zu tun, Dinge wie "alle zwei Wochen" oder "alle 45 Minuten". Also, schreiben ein Skript als wrapper, um zu überprüfen, ob Sie scheint die einzige Wahl.
Ich denke, dass Sie wahrscheinlich haben die richtige Idee. Aber da node-cron Zeitpläne Ausführung von JavaScript-code, keine Befehle, die OP zu schreiben müssen Sie eine JavaScript-Funktion, die prüft, ob es ausgeführt werden soll.
InformationsquelleAutor Cody
Habe ich versucht, mit dieser für 45 Sekunden-Intervall und funktioniert Prima
'*/45 * * * * *'
InformationsquelleAutor SUBHASIS MONDAL
können Sie
node-reel
die ist besser lesbar, geradlinig und genial ?.https://github.com/shakee93/node-reel
InformationsquelleAutor shakee93
cron verwenden npm moduel so etwas
InformationsquelleAutor KARTHIKEYAN.A
Finden Sie in cronr, es unterstützt alle makro-Muster und bietet eine online-demo cronr -- online-demo
InformationsquelleAutor ryu