Drupal Cronjobs, avagy időzített feladatok egyszerűen

#drupal #cronjob

Drupal Cronjobs, avagy időzített feladatok egyszerűen

Figyelem!

Úgy tűnik, hogy jelenleg egy olyan cikket böngészel ami több mint két éve készült. A technológia világában ez nagyon sok idő és azóta már sokkal jobb megoldások is lehetnek, mint amit ebben a cikkben olvashatsz. Így azt tanácsolom keress egy frissebb cikket ebben a témában.

Előfordulhat, hogy a weboldalnak szüksége van szerver oldalon időzített feladatokra, amik automatikusan elvégeznek egyes háttérfeladatokat bizonyos időközönként helyettünk. Ezek indíthatnak el olyan folyamatokat amik elvégzik a hírlevelek kiküldését, megnézik van-e valamely modulhoz vagy az alaprendszerhez új frissítés, vagy karbantarthatják oldalunk és üríthetik a cache-t is.

Szegényember Cron-ja

Drupal alatt régen Poormanscron-ként ismert időzítő most már az alapkonfigurációban is benne van, tehát ha nekünk nem szükséges, hogy 5 percenként is lefusson ez feladatsor, akkor ezt a rendszer elvégzi helyettünk. Ennek módszere, hogy ha látogató érkezik az oldalunkra ő indítja el a háttérben elinduló folyamatokat, nem pedig egy szerver oldali hívás.

A kulcs

De van olyan eset is, mint például a hírlevél küldés, amikor szükségünk van arra, hogy pár percenként lefusson ez az időztő ami többek között a leveleinket is továbbítani is fogja. Szerencsénkre ma már minden tárhelyszolgáltató fel tudja ajánlani a Cronjob-ok beállítását, amivel ezt könnyen el tudjuk érni.

Hogyan is tegyük tehát ezt? Milyen scriptet futtassunk le az időzítőben?

A Drupal weboldalunk Állapot jelentés oldalára navigálva az Időzített feladatok sorban láthatjuk, hogy az időzítő parancssorból is futtatható, és ezt is fogjuk tenni. A sikeres futtatáshoz azt is megfigyelhetjük, hogy egy kulcsra van szüksége a cron.php fájlnak. Sok megoldással találkoztam Drupal pályafutásom alatt, de a legegyszerűbb meghívása ennek a címnek WGET segítségével lehetséges. Tehát nincs más dolgunk, mint a következő parancsot megadni az időzítőben rendszeres meghívásra:

/usr/bin/wget -O - -q -t 1 http://www.te-drupal-oldalad.hu/cron.php?cron_key=blablabla

A -O az output-ot tiltja le, miközben a -q csendes módra állítja a WGET-et, tehát ideális esetben nem is lesz outputunk. A -t 1 pedig a próbálkozások számát állítja 1-re.

Persze a saját szerverünkön érvényes WGET elérési utat kell megadni, a helyes működés érdekében. Ha ebben az útvonalban nem vagyunk biztosak, akkor nyugodtan kérdezzük meg szolgáltatónkat.

Cronjob szintaxis

Ha nem áll rendelkezésünkre webes felület, akkor kézzel is összerakhatjuk a meghívni kívánt cron parancsot. Amit ilyenkor figyelembe kell venni, hogy az időzítés megadása a meghívandó script előtt legyen. Lássunk erre néhány példát:

Minden nap éjfélkor: 0 0 * * *
Minden nap fél-ötkor: 30 16 * * *

További megoldásokról részletesen olvashattok a Wikipédia ide illő szócikkében.

További tartalmak