-
Cron jobs
Salutare. Doresc sa rulez un fisier php, care imi face update la un status, pentru fiecare inregistrare. Codul php este simplu: extrage din baza de date cu LIMIT 1, dupa care face update la prima inregistrare (cea de care are nevoie sa faca update de status), insa problema mea este ca, doresc sa se faca update doar la o inregistrare la 4 ore, cu ajutorul cron jobs, insa cand ajunge la 4 ore, imi face update la toate inregistrarile. Cum pot face ca, cron job sa ruleze scriptul doar o singura data la fiecare 4 ore? Presupun ca, acum imi ruleaza pana trece de 60 de secunde, "iasa" din cele 4 ore.
De ceva vreme tot incerc sa fac si nu reusesc nici cum. In cPanel am codul
Cod PHP:
php -q /home/username/public_html/admin/status.php
iar la ore am "*/4". Am incercat sa pun in loc la -q, -t 1, care cica ruleaza scriptul doar o singura data, insa nu a functionat. Am mai incercat la ora sa pun */4,01,01, sa fie minutul si secunda insa nici asa nu am reusit.
Daca stie cineva, il rog sa ma ajute.
-
Cod:
php -f /home/username/public_html/admin/status.php
Din câte știu, "-q" e "quite mode".
-
Mc. Am sa incerc sa vad daca functioneaza.
-
Te complici asa... de ce nu-ti faci un semafor in script si verifici programatic daca 1 data la 4 ore a fost sau nu rulat. Daca a fost rulat atunci semaforu trece pe true si data viitoare cand incearca sa mai folosesca scriptu, fara sa treaca 4 ore, ii da return 0; Simplu :)
-
Am sa incerc asa, pentru ca nu merge nici cum.Mc.
-
Cod:
0 */4 * * * php -q /home/username/public_html/admin/status.php
Cam asa ceva ?
-
Asa am facut dar nu merge.
-
daca incluzi fisiere in status.php trebuie sa le pui calea absoluta
-
Nu am nimic inclus decat codul php care face update in baza de date. Codul nu are nimic altceva, care sa restrictioneze in cazul in care nu au trecut acele 4 ore, de aceea am cerut ajutorul, pentru ca, daca rulez o sigura data scriptul, functioneaza, daca rulez dupa 1 minut, iarasi functioneaza, asa ca vroiam la cron jobs sa fac cumva sa ruleze doar o singura data la 4 ore. Am mai facut update si la data + ora si se pare ca mi-a facut la 4 ore si dupa o ora iar si-a dat drumul de mi-a mai facut update la o inregistrare. Se pare ca am sa modific fisierul sa nu mai accepte update-ul.
-
Poti specifica orele, poate asa merge :)
Cod PHP:
0 0,4,8,12,16,20 * * * php -q /home/username/public_html/admin/status.php