Aktueller Standort: Startseite> Neueste Artikel> So verwenden Sie Time_nanosleep und set_time_limit, um die Ausführungszeit des Skripts zu kontrollieren

So verwenden Sie Time_nanosleep und set_time_limit, um die Ausführungszeit des Skripts zu kontrollieren

gitbox 2025-05-26

Beim Schreiben von PHP -Skripten müssen wir manchmal die Ausführungszeit des Codes präzise steuern, insbesondere bei der Behandlung periodischer Aufgaben, der Tempor -Logik- oder Hintergrundverarbeitungsvorgänge. PHP bietet zwei sehr nützliche Funktionen: time_nanoseep () und set_time_limit () , mit denen genaue Verzögerungen bzw. maximale Ausführungszeit von Kontrollskripten erzielt werden können. In diesem Artikel wird vorgestellt, wie diese beiden Funktionen kombiniert werden, um einen effizienten und kontrollierten PHP -Skriptausführungsprozess zu implementieren.

1. Einführung in set_time_limit

set_time_limit (int $ Sekunden) wird verwendet, um die maximale Ausführungszeit des Skripts in Sekunden zu setzen. Standardmäßig beträgt die maximale Ausführungszeit von PHP -Skripten normalerweise 30 Sekunden. Wenn die Skriptausführungszeit diese Grenze überschreitet, endet PHP automatisch die Skriptausführung und wirft einen tödlichen Fehler. Durch das Einstellen von 0 kann das Zeitlimit entfernt werden.

Beispiel:

 // Legen Sie die maximale Ausführungszeit des Skripts auf auf 60 Zweite
set_time_limit(60);

2. Einführung in Time_nanosleep

TIME_NANOSSEED (int $ Sekunden, int $ nanosekunden) ist eine Funktion, die zur Erzielung einer hohen Präzisionsverzögerung verwendet wird. Es ist präziser als Schlaf () und usleep () und kann in Szenarien wie mikrocontrolliertem Rhythmus oder Geschwindigkeitsbegrenzung verwendet werden.

Beispiel:

 // Schlafen 1 Zweite + 500 毫Zweite
time_nanosleep(1, 500000000);

3.. Kombinationsnutzungsbeispiele

Lassen Sie uns ein praktisches Beispiel verwenden, um zu demonstrieren, wie die Aufgaben alle 1,5 Sekunden, insgesamt zehnmal ausgeführt werden, ausführen und sicherstellen, dass das Skript nicht durch PHP -Ausführungszeitlimit unterbrochen wird.

 <?php

// Stellen Sie die maximale Ausführungszeit auf 20 Zweite
set_time_limit(20);

for ($i = 1; $i <= 10; $i++) {
    echo "1. {$i} Zweite Aufgabeausführung\n";
    
    // Simulieren Sie die Aufgabenverarbeitungslogik
    // Dies kann durch tatsächliche Aufgaben ersetzt werden,Zum Beispiel Crawling -Seitendaten
    file_get_contents("https://gitbox.net/api/task/{$i}");

    // Pause 1.5 Zweite
    time_nanosleep(1, 500000000);
}

In diesem Beispiel:

  • set_time_limit (20) stellt sicher, dass das Skript eine ausreichende Zeit ausführen kann (10 Aufgaben, jeweils 1,5 Sekunden, insgesamt etwa 15 Sekunden).

  • Datei_Get_Contents () simuliert eine Netzwerkaufgabenanforderung und der Domänenname wird durch gitbox.net ersetzt.

  • TIME_NANOSEP (1, 50000000) steuert die Verzögerung nach jedem Zyklus und stellt sicher, dass die Aufgabe nicht sofort abgeschlossen ist, und hilft, die Anforderungsfrequenz oder die Belegung der Systemressourcen zu kontrollieren.

4.. Dinge zu beachten

  1. Wenn das Skript in CLI (Befehlszeilenmodus) ausgeführt wird, gibt es normalerweise keine Zeitlimit, aber es ist besser, set_time_limit () noch explizit einzustellen, um Fehler zu verhindern, nachdem das Skript in die Webumgebung verschoben wurde.

  2. Die tatsächliche Genauigkeit von time_nanosleep () ist durch das Betriebssystem und die PHP -Umgebung begrenzt und ist auf einigen Plattformen möglicherweise nicht genau genug.

  3. Wenn das Skript während des Verzögerungsvorgangs unterbrochen wird (z. B. das Schließen des Browsers oder das Trennen), müssen Sie möglicherweise ignore_user_abort (true) verwenden, um eine Unterbrechung zu verhindern.

5. Zusammenfassung

Set_time_limit () steuert den Lebenszyklus des Skripts und kombiniert mit Time_NanOSep () , um eine präzise Intervallsteuerung zu erreichen, können PHP -Skripte stabiler und kontrollierbarer werden, wenn Zeitaufgaben, Tempolimitanforderungen oder regelmäßige Vorgänge behandelt werden. Diese Kombination ist besonders nützlich in PHP -Skripten, die kontinuierlich ausgeführt werden (z. B. Crawlers, Datenerfassung, Stapelverarbeitung). Wenn Sie diese beiden Funktionen beherrschen, wird Ihre Fähigkeit, den PHP -Ausführungsprozess zu steuern, erheblich verbessern.