Cron jobs: pentru sarcini repetitive


Nu ştiu dacă vă amintiţi de un articol din 2006: Defragmentare automată. Scriam acolo despre puternica facilitate din Windows ce permite programarea de sarcini. Pentru utilizatorul de rând poate să nu fie ceva foarte interesant. Cei experimentaţi cunosc însă eficienţa ce o dă acest instrument. Ei bine, trecând de la calculator la servere web şi ele au ceva similar: cron jobs. În exemplul meu voi porni de la cPanel dar şi dacă aveţi Plesk ar trebui să găsiţi ceva similar. În cPanel Cron jobs se află în panoul Advanced. Un click pe el şi veţi avea două opţiuni: să mergeţi pe calea simplă sau pe cea “complicată”.

image

În modul standard veţi vedea ceva ca mai jos. Practic specificaţi o comandă (un fişier PHP, CGI, după caz) şi apoi frecvenţa. Aici trebuie să fiţi foarte atenţi: un proces ce “mănâncă” multe resurse apelat des nu va place celor care vă oferă găzduire. Fiţi deci siguri că scriptul apelat este bine optimizat şi nu este lansat inutil de frecvent. În exemplul de mai jos se apelează o pagină PHP în fiecare duminică din fiecare lună la ora 1AM (ora serverului, atenţie!). S-ar putea, de la server la server, să ajungă să indicaţi doar scriptul (în unele locuri pe web arată chiar folosirea unui URL), dar pe serverul unde am lucrat eu nu a mers până nu am prefixat după cum vedeţi mai jos. Dacă vreţi să vedeţi un video tutorial pe această temă, daţi click aici.

image

Acum să vedem: la ce poate fi util? Hoho… la multe. Desigur, depinde de proiect. Vorbim din nou de o facilitate care se adresează celor experimentaţi & avansaţi. Să zicem că aveţi un magazin online: puteţi defini sarcini care de exemplu în ultima zi a lunii să trimită un raport cu situaţia vânzărilor. Să zicem că aveţi un sistem propriu de statistici: puteţi defini o sarcină care în fiecare luni dimineaţa să vă trimită situaţia vizitelor pe săptămâna trecută. Să zicem că webaplicaţia Dvs creează fişiere temporare: puteţi defini o sarcină care să le şteargă periodic. Şi exemplele pot continua.

Eu folosesc sarcini (e drept, nu sub Linux ci sub un server Windows) de mai mulţi ani. Avem de exemplu pe Catholica.ro un serviciu prin email cu informaţii liturgice despre ziua de mâine. Timp de multe luni realizam acel email manual şi îl trimiteam manual. Vai, vai ce vremuri. Zi de zi trebuia să fiu atent ca dimineaţa să pregătesc emailul şi apoi să îl trimit. Vă daţi seama că nu era prea distractiv. Până când într-o zi am scris un script care creează singur emailul şi care e apelat noaptea. Aşa se face că de vreo 2 ani cei aproape două mii de abonaţi primesc emailurile automat fără ca eu să mă mai preocup de ele. Desigur, trebuie să mă asigur că în baza de date am informaţiile necesare, dar aceasta se face o dată pe an, în rest, 365 de zile, scriptul face singur treaba de “compunere” şi expediţie. Trăiască aceste job-uri automate.

Mai folosesc şi alte scripturi automate pentru alte funcţiuni. Şi din această experienţă vă pot spune un lucru: programarea sarcinilor este excelentă pentru că îţi permite să uiţi de ele… dar aici poate fi o greşeală capitală, tocmai a uita de ele. Este esenţial să vă definiţi nişte “răspunsuri” pe care să le puteţi verifica, pentru a şti că tot procesul automat decurge bine. Dacă aveţi un sistem de expediţie puteţi să implementaţi un mecanism suplimentar de verificare a expediţiilor (o a doua sarcină). Pe de altă parte, cron job-urile au implicit asociată o adresă de email de notificare. Ajunge ca scriptul să aibă ca ieşire (afişare) rezultatele sarcinii pentru ca să le primiţi prin email. Nu uitaţi niciodată de verificarea constantă a sarcinilor automatizate.


Apreciază articolul:

1 stea2 stea3 stea4 stea5 stea (1 evaluări, media: 5,00 din 5)
Loading...Loading...

0 comentarii


Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile necesare sunt marcate *