Entwicklertools · Crontab-Generator
Jede Minute einen Cron-Job ausführen: Wann die Abfrage falsch ist und was zu verwenden ist
· Warum es wichtig ist
Cron Umfrage Leistung
Minutenlose Jobs sind einfach zu schreiben und teuer im Leben. In diesem Beitrag werden die Kosten, die Fälle, in denen sie gerechtfertigt sind, und die Alternativen von längeren Intervallen zu Daemons und Event-Triggern erläutert.
Jede Minute-Syntax erstellt 1,440 Kalenderkandidaten an einem vollständigen 24-Stunden-Tag
`* * * * *` wird auf jede Minute von 0 bis 59, jede Stunde und jedes Kalenderdatum erweitert. An einem kompletten 24-Stunden-Tag, der 1,440 passende Minutenetiketten für Wanduhren produziert. Die Voreinstellungen und Tests von ToolAcre legen die Grammatik fest, während in der Vorschau nur die nächsten fünf Kandidaten angezeigt werden, um die Benutzeroberfläche lesbar zu halten.
Die Anzahl beschreibt Chancen, keine erfolgreichen Aktionen. Eine nicht vorhandene lokale Minute während eines Vorwärtszonenübergangs kann durch diese Vorschau weggelassen werden und der Browser führt nie eine Aufgabe aus. Verwenden Sie den Ausdruck, um über die Kadenz nachzudenken, und messen Sie dann die tatsächlichen Laufzeiteffekte dort, wo der Befehl und der Scheduler vorhanden sind.
Die Laufzeitkosten können nicht allein aus dem Ausdruck berechnet werden
Ein Ausdruck enthält keine Prozessstartzeit, Verbindungsanzahl, Protokollvolumen oder Ressourcennutzung. Ein einzeiliger Scheck und ein großer Import können die gleichen fünf Sterne haben und gleichzeitig unvergleichliche Kosten verursachen. Die Liste der Gemeinkosten in der Arbeitsmappe mag plausibel sein, aber ToolAcre kann sie nicht anhand des Zeitplantextes quantifizieren.
Die Leistungsanalyse beginnt daher außerhalb des Generators: Beobachten Sie Dauer, CPU, I/O und nachgelagerte Aufrufe für die eigentliche Aktion. Multiplizieren Sie sorgfältig mit der Kandidatenhäufigkeit, erst nachdem Sie repräsentative Läufe gemessen haben. Der Parser kann Ihnen sagen, wie viele Minutenwerte übereinstimmen; Es kann Ihnen nicht sagen, was jedes Spiel kostet.
Die Eignung hängt von einer externen Aktion und Latenzanforderungen ab
Ob eine Abfrage im Minutentakt gerechtfertigt ist, hängt von der Latenzanforderung und dem Aktionsdesign ab. ToolAcre weiß nicht, ob der Befehl idempotent ist, ob eine Ereignisquelle vorhanden ist oder welche Verzögerung Benutzer tolerieren können. Der Zeitplan sollte nicht grundsätzlich als gut oder schlecht gekennzeichnet werden.
Übersetzen Sie die Anforderung in ein maximal akzeptables Intervall und vergleichen Sie dieses dann mit den beobachteten Kosten und der Fehlerbehandlung. Wenn eine Latenz von fünf Minuten ausreicht, reduziert `*/5 * * * *` die Minutenkandidaten auf zwölf pro Stunde. Wenn nur eine Latenz von einer Minute funktioniert, behalten Sie die Kadenz bei und gehen Sie explizit auf Ausführungsprobleme ein.
Minuten-Offsets verteilen die feste Stundenarbeit, jedoch nicht zufällig
Ein fester Offset wie `7 * * * *` wählt Minute sieben jeder Stunde aus. Es kann diesen Job von der auf Minute Null fixierten Arbeit trennen, aber es ist deterministisch und nicht randomisiert. Mehrere Offsets können bekannte Jobs über die Stunde verteilen, wenn ihre genaue Wandminute keine Rolle spielt.
ToolAcre beschreibt die Minute sieben nach jeder vollen Stunde und zeigt eine Vorschau der entsprechenden Daten an. Andere Zeitpläne auf dem Host werden nicht überprüft, daher kann nicht nachgewiesen werden, dass der gewählte Offset ruhig ist. Erstellen Sie eine Bestandsaufnahme, bevor die Last verteilt wurde, und bewahren Sie den Grund für die Verschiebung in der Dokumentation auf.
Worker und Service-Timer sind Alternativen außerhalb dieses Repositorys
Langfristige Worker-, Event-Delivery- und Service-Manager-Timer können in einigen Systemen die Abfrage ersetzen. Keine wird vom Crontab-Generator implementiert und ihre Konfiguration kann nicht aus `* * * * *` abgeleitet werden. Das Repository verfügt über keine Warteschlangen-Client- oder Supervisor-Integration.
Wählen Sie Alternativen aus den Beweisen der Zielarchitektur. Ein Worker kann wiederholte Startvorgänge entfernen und gleichzeitig Lebenszyklus- und Wiederherstellungsanforderungen einführen. Ein Ereignispfad kann Leerprüfungen reduzieren und gleichzeitig eine Zustellungssemantik hinzufügen. Der Generator bleibt für verbleibende periodische Aufgaben nützlich, kann diese Kompromisse jedoch nicht beurteilen.
Arbeitsbeispiel: Kandidatenhäufigkeit reduzieren und Vorschauen vergleichen
Vergleichen Sie drei Ausdrücke im Panel: every minute, `*/5 * * * *` und `7 * * * *`. Der erste Schritt rückt um eine Minute vor, der zweite wählt 0, 5, 10 und nachfolgende Vielfache aus und der dritte wählt eine Minutenposition pro Stunde aus. Die Beschreibungen machen jede Änderung verfügbar, ohne dass ein Poller ausgeführt werden muss.
Verwenden Sie diese Kandidatenlisten, um die Latenz konkret zu diskutieren. Wenn eine Anfrage unmittelbar nach einem Fünf-Minuten-Kandidaten eintrifft, ist die nächste Gelegenheit fast fünf Minuten entfernt. Diese einfache Grenze ist ein Zeitplanbeweis. Verarbeitungsdauer, Warteschlangenverzögerung und Erfolg bleiben weitere Messwerte, die der Browser nicht liefern kann.
Was dies nicht abdeckt – Subminutenplanung, die Cron nicht ausdrücken kann
Fünf-Felder-Cron kann keine Sekunden ausdrücken, da dieser Parser mit der Minute beginnt. Eine Eingabe aus sechs Feldern wird abgelehnt und nicht als höherfrequente Eingabe behandelt. Das Erstellen einer Shell-Schleife zum Emulieren von Arbeiten in weniger als einer Minute ist ein Befehlsverhalten außerhalb von ToolAcre und wird hier ohne laufzeitspezifische Tests nicht empfohlen.
Wenn die Anforderung weniger als eine Minute beträgt, wählen Sie einen Planer oder Arbeiter aus, der für diese Lösung konzipiert und dokumentiert ist. Erzwingen Sie keinen nicht unterstützten Sekundenwert im ersten Feld. Der Exakt-Fünf-Felder-Fehler ist ein nützlicher Dialektschutz, der verhindert, dass ein schnell aussehender Ausdruck stillschweigend falsch gelesen wird.
Takeaway: Wählen Sie das gröbste Intervall, das Ihren Anforderungen entspricht – und der Generator macht einen */5- oder */15-Ausdruck so einfach wie fünf Sterne
Wählen Sie den gröbsten Rhythmus, der ein gemessenes Bedürfnis befriedigt, aber halten Sie die Entscheidung getrennt von der Ausdrucksgültigkeit. ToolAcre kann Minuten-, Fünf-Minuten- und Offset-Zeitpläne gleichermaßen syntaktisch korrekt erstellen. Nur betriebliche Beweise bestimmen, wer in ein System gehört.
Verwenden Sie den Generator, um Möglichkeiten aufzuzählen, und fügen Sie dann Kosten-, Latenz- und Zuverlässigkeitsmessungen vom Ziel hinzu. Diese kombinierte Aufzeichnung ist ehrlicher, als jeden Minuten-Cron in jedem Fall als teuer zu bezeichnen oder davon auszugehen, dass ein weniger häufiger Ausdruck ineffiziente Arbeit automatisch behebt.