Cum să pună în aplicare un contor de timp în PHP

Ei bine, vskidku decizie pe frunte:

dar este drept, soluție neîndemânatic (cod - condiționată ilustrează doar o idee).

Puteți crea chiar un fișier de pe un disc undeva la cron (o dată pe zi) și de a face ca acest lucru:


Problema principală este că nu se poate gândi imediat, pentru că modul în comun datele la exterior, de lucru cu script-ul non-stop în PHP. Nu este încă C ++.

Puteți încerca în continuare să păstreze matrice într-un Redis larg, sau Memcached, și să-l curățați o dată pe zi, și de fiecare dată când avem nevoie - să-l (matrice) citește de acolo. Sau serializa și de a salva pe disc.

Dacă cineva spune modul în care o bucată de memorie pentru a partaja PCP, cred că ar fi o soluție mai bună.

Puteți încerca în continuare să vebsoket PCP deschis, și respectiv de admitere. comandă - pentru a goli matrice. Dar eu sunt un socketuri web în PCP-realizare nu au încercat și nu pot, din păcate, să vă spun cum va arata.

P.S. Punerea în aplicare a fișierului poate fi înlocuit cu o intrare în baza de date sau în Redis / Memcached. Ie nu au de a verifica fișierul, și prezența înregistrării. Apropo, da, lat Redis este un parametru numit „Cache viață“, în acest caz, chiar și CRON nu este necesară. Cu siguranță, ceva în memcached este.

Da, m-am gândit matrice de stocare este script - în bazele de date sau în fișierul json, de exemplu, dar apoi fiecare iterație a buclei am nevoie pentru a încărca din nou matrice, iar intervalul dintre iteratii - 2 minute. Nu ar fi mult json_decode sarcină + file_get_contents?

NikHaker. Dacă aveți un Linux (pentru alte sisteme de operare nu se poate spune), și va fi descărcarea unor fișiere în mod frecvent - el zakeshiruetsya sistem de operare. Acest lucru nu este cu siguranță la fel ca nivelul de cache Redis sau Memcached, dar, în general, „pentru a trage discul“, această operație nu va fi. Apoi, desigur, merită luat în considerare o serie de factori, cum ar fi BluRay-film pe un 30GB cu greu zakeshiruetsya. Dar aș alege mai degrabă opțiunea cu baza de date, există mai multe mai multe opțiuni de pe „viitor“ (sau aceeași versiune cu Redis - este, în opinia mea, totul este perfect, pentru că el știe cum să goliți memoria cache). json_ * - mai ales nu va livra, în cazul în care datele în anumite limite rezonabile. În general, astfel de operațiuni sunt efectuate destul de repede și PHP are mult mai sensibil la spațiul de performanță și modul de a accelera, mai degrabă decât renunțarea la json_ * :)