Autor Zpráva
benett
Profil
Na hostingu mám cron s intervalem 60s, ale potřeboval bych provádět skript každých 20s. Existuje nějaké elegantní řešení?
Narazil jsem např. na toto, ale to, jak se zdá, lze využít pouze tam, kde existuje uživatelský přístup k tomu skriptu, takže je to nevhodné pro krátké intervaly http://stackoverflow.com/questions/865381/how-can-i-run-php-script-in-certain-interval-e-g-once-a-day/865669#865669

Ještě mě napadá, že by šlo vytvořit druhé vlákno nebo proces, máte s tím nějaké zkušenosti?
Majkl578
Profil
Co třeba použít 60 sekund a v něm úlohu 3× opakovat?
for ($i = 0; $i < 3; $i++) { 
    $start = microtime(TRUE); 
     
    // úloha každých 20s 
    
    if (($spent = microtime(TRUE)) < ($start + 20)) usleep(($start + 20 - $spent) * 1e6); // počkat dokud neuběhne 20s
}
benett
Profil
Díky, to je celkem dobré řešení.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0