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:
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.