Configurarea cron job-ului

Ce este: un mic „puls" pe care îl configurezi o singură dată, ca TSync să își poată face singur treburile programate — chiar și atunci când nu este nimeni autentificat. Gândește-te la el ca la întoarcerea unui ceas: odată ce începe să bată, TSync se ocupă în liniște de munca de rutină în fundal, în fiecare minut.

De ce te interesează: fără acest puls, mai multe funcții utile pur și simplu nu rulează niciodată. Dacă memento-urile nu pleacă sau facturile recurente nu apar, aproape întotdeauna acesta este motivul.

Iată ce nu mai funcționează atunci când lipsește pulsul:

  • Facturile recurente nu se creează automat
  • Memento-urile (factură restantă, sarcină scadentă, contract care expiră) nu se trimit
  • Importul de lead-uri din e-mail nu preia mesajele noi
  • Backup-urile automate nu rulează
  • Notificările pe e-mail pentru abonamente nu pleacă

Așa că această configurare este un pas obligatoriu pentru un sistem complet funcțional. Vestea bună: o faci o singură dată și apoi o uiți.

Singura comandă pe care TSync are nevoie să o ruleze

Aceasta este instrucțiunea pe care serverul tău o va rula la intervale regulate. Îi spune serverului „rulează scriptul de fundal al lui TSync":

php -q /full/path/to/tsyncerp/pipe.php cron

Va trebui să afli locația reală a două lucruri ca să completezi spațiile goale:

  • Unde este instalat TSync — înlocuiește /full/path/to/tsyncerp/ cu folderul tău real.
  • Unde se află PHP — majoritatea serverelor cunosc php, dar ca să fii sigur folosește calea completă. Această mică comandă ți-o afișează:
which php       # de obicei afișează ceva de genul /usr/bin/php
which php8.1    # unele servere îl denumesc cu versiunea

Cât de des? Ideal este o dată la fiecare minut — așa memento-urile și facturile par instantanee.

Alege secțiunea de mai jos care se potrivește găzduirii tale. Ai nevoie doar de una.

Pe Linux (cPanel, Plesk sau propriul tău server)

Calea simplă (panoul de control cPanel)

Dacă găzduirea ta îți oferă cPanel, aceasta este varianta cea mai ușoară — fără comenzi de scris:

  1. În cPanel, deschide Cron Jobs (în secțiunea Advanced).
  2. La Common Settings, alege Once per minute (* * * * *).
  3. În câmpul Command, lipește (cu calea ta reală):
    /usr/bin/php -q /home/USERNAME/public_html/pipe.php cron
    
  4. Apasă Add New Cron Job. Gata.

Calea Plesk

  1. În Plesk, deschide site-ul tău și mergi la Scheduled Tasks.
  2. Apasă Add TaskRun a command.
  3. La Command, introdu (cu calea ta reală): php /var/www/vhosts/your-domain/httpdocs/pipe.php cron
  4. Setează Run la un stil Cron de tipul * * * * * (acesta este codul pentru „la fiecare minut").
  5. Apasă OK.

Calea din linia de comandă (folosind crontab)

Dacă te simți confortabil să te conectezi la server prin SSH, aceasta funcționează pe orice mașină Linux. Deschide lista ta personală de sarcini programate:

crontab -e

Adaugă această singură linie — înseamnă „la fiecare minut, rulează în liniște scriptul de fundal al lui TSync":

* * * * * /usr/bin/php -q /var/www/tsyncerp/pipe.php cron > /dev/null 2>&1

(Partea > /dev/null 2>&1 doar îl împiedică să îți trimită pe e-mail rezultatul în fiecare minut.)

Salvează și ieși. Dacă editorul tău este vim, scrie :wq; dacă este nano, apasă Ctrl+O, Enter, apoi Ctrl+X.

Ca să verifici încă o dată că linia a fost salvată:

crontab -l    # listează sarcinile tale programate

Pe Windows Server (Task Scheduler)

Windows are un instrument încorporat numit Task Scheduler pentru sarcini programate:

  1. Deschide Task Scheduler.
  2. Alege Create Basic Task și denumește-l cumva, de exemplu „TSync cron".
  3. La Trigger, alege Daily, apoi setează-l să se repete la fiecare 1 minute, pe termen nelimitat.
  4. La Action, alege Start a program și completează:
    • Program: C:\php\php.exe (oriunde este instalat PHP)
    • Arguments: -q "C:\inetpub\wwwroot\tsyncerp\pipe.php" cron
    • Start in: C:\inetpub\wwwroot\tsyncerp\
  5. Apasă Finish.

Nu ai acces la linia de comandă? Folosește un cronometru web

Dacă găzduirea ta nu îți oferă SSH, dar oferă „HTTP cron" (un cronometru care vizitează o adresă web), poți să îl direcționezi către adresa web de cron a lui TSync:

* * * * * wget -q -O /dev/null "https://your-domain.com/cron"

O mică atenționare: această opțiune este puțin mai puțin privată, pentru că oricine cunoaște acea adresă web o poate declanșa din exterior. Dacă ai de ales, variantele din linia de comandă de mai sus sunt alegerea mai sigură.

Verifică dacă funcționează cu adevărat

Trei moduri ușoare de a confirma că pulsul bate:

1. Rulează-l o dată manual

Aceasta rulează scriptul de fundal o singură dată, chiar acum, ca să vezi dacă totul este în regulă:

php /var/www/tsyncerp/pipe.php cron

Lipsa erorilor înseamnă că ești în regulă. Dacă totuși vezi un mesaj, iată ce îți spune el pe înțelesul tuturor:

  • Could not open input file → calea folderului din comanda ta este greșită — verific-o din nou.
  • No such file pentru include-uri → o problemă de permisiuni la folder blochează accesul.
  • Database error → scriptul nu poate ajunge la baza de date din linia de comandă (rar).

2. Verifică în interiorul TSync

Mergi la Setup → Settings → System/Server Info. Acolo se afișează ora la care a rulat ultima dată cron-ul. Dacă a fost acum mai puțin de 5 minute, pulsul tău este sănătos.

3. Aruncă o privire în jurnalul de cron al serverului (opțional)

Dacă vrei dovada că serverul declanșează sarcina:

# Pe Linux:
grep CRON /var/log/syslog | tail -20

Dacă ceva nu este în regulă

Nu rulează nimic deloc

  • Rulează crontab -l — linia chiar este acolo?
  • Folosește calea completă către PHP (/usr/bin/php), nu doar php. Aici se împiedică foarte multă lume.
  • Asigură-te că contul care rulează sarcina are voie să ruleze PHP.

Rulează, dar nu se întâmplă nimic

  • Confirmă că baza de date poate fi accesată din linia de comandă.
  • Verifică ora „last cron run" din Setup → Settings ca să vezi dacă se actualizează.

Un mesaj „Memory exhausted"

Sarcina a rămas fără memorie de lucru. Dă-i mai mult spațiu în fișierul tău php.ini:

memory_limit = 512M

(Notă: linia de comandă folosește uneori un alt php.ini decât site-ul tău — asigură-te că ambele au o limită generoasă.)

E-mailurile tot nu se trimit, deși cron-ul rulează

Asta indică spre configurarea e-mailului, nu spre cron:

  • Verifică în Setup → Settings → Email că detaliile pentru e-mailul de ieșire (SMTP) sunt completate.
  • Trimite un e-mail de test din același ecran.

Un program mai relaxat (doar dacă găzduirea te obligă)

Unele găzduiri mai ieftine nu te lasă să rulezi o sarcină în fiecare minut. Poți să o rulezi în schimb la fiecare 5 minute — memento-urile și facturile vor părea doar cu o idee mai puțin instantanee:

*/5 * * * * /usr/bin/php /var/www/tsyncerp/pipe.php cron > /dev/null 2>&1

Pentru majoritatea configurărilor, la fiecare minut este experiența mai bună.

Vezi și