Cronjob arba užduoties sukūrimas (ir ką daryti, jei ji nevykdoma)
Naudodami cron užduotį (DirectAdmin: Cron Jobs) galite nustatyti, kad scenarijus būtų automatiškai paleidžiamas nustatytu laiku, pavyzdžiui, kiekvieną naktį. Toliau sužinosite, kaip ją sukurti ir ką daryti, jei ji neveikia.
Cron užduočių taisyklės
- Užduotį paleiskite ne dažniau kaip kartą per 10 minučių. To prašome visų, nes serverį dalijatės su kitomis svetainėmis.
- Kelias cron užduotis paskirstykite laike ir pasirinkite ramų metą, pavyzdžiui, 03:17, o ne lygiai vidurnaktį.
- Sunkios cron užduotys, kurios ilgai apkrauna serverį, neleidžiamos. Tame pačiame serveryje veikia ir kitos svetainės. Prireikus cron užduotį sustabdome. Todėl užduotis darykite trumpas ir paleiskite jas ne dažniau, nei būtina.
Cron užduoties kūrimas
- Prisijunkite prie DirectAdmin ir skiltyje Advanced Features spustelėkite Cron Jobs.
- Spustelėkite Create Cron Job.
- Įveskite minutę, valandą, dieną, mėnesį ir savaitės dieną. Minutės laukelyje niekada nerašykite vien žvaigždutės, kitaip užduotis bus vykdoma kas minutę. Naudokite skaičių arba, pavyzdžiui,
*/15, kad užduotis būtų vykdoma kas 15 minučių. - Komandos laukelyje įrašykite visą kelią, pavyzdžiui:
/usr/local/bin/php -q /home/gebruiker/domains/jouwdomein.nl/public_html/taak.php
Pakeiskite gebruiker savo DA naudotojo vardu. - Spustelėkite Create.

Laiškas po kiekvienos cron užduoties
Cron užduoties išvestis siunčiama į numatytąją Jūsų paslaugų plano el. pašto paskyrą, žr. Numatytoji el. pašto paskyra DirectAdmin. Išvestį taip pat galite siųsti savo adresu naudodami Send all Cron Output to E-Mail. Jei nenorite gauti laiškų, kurdami užduotį spustelėkite Prevent E-Mail arba komandos gale pridėkite:
>/dev/null 2>&1
Ką reikia žinoti apie PHP scenarijus
Scenarijus, vykdomas per cron užduotį, nežino, kokiame domene jis veikia. $_SERVER['SERVER_NAME'] ir $_SERVER['DOCUMENT_ROOT'] yra tušti, o include su santykiniu keliu gali nepavykti. Todėl scenarijaus pradžioje įrašykite:
$pad = '/home/gebruiker/domains/jouwdomein.nl/public_html'; $_SERVER['SERVER_NAME'] = 'jouwdomein.nl'; $_SERVER['DOCUMENT_ROOT'] = $pad; set_include_path($pad . PATH_SEPARATOR . get_include_path());
WordPress: WP-Cron per tikrą cron užduotį
WordPress turi savo planuoklį WP-Cron, skirtą tokioms užduotims kaip suplanuoti įrašai, atnaujinimų tikrinimas ir įskiepių užduotys. Jis vykdomas ne nustatytu laiku, o tik tada, kai kas nors apsilanko Jūsų svetainėje. Kai lankytojų mažai, užduotys vėluoja, o kai daug, kiekvienas apsilankymas užtrunka šiek tiek ilgiau. Naudojant įprastą cron užduotį, WP-Cron vykdomas nustatytu metu.
- Faile
wp-config.phpvirš eilutės/* That's all, stop editing! */įrašykite:define( 'DISABLE_WP_CRON', true );
- Skiltyje Cron Jobs sukurkite užduotį, kuri vykdoma, pavyzdžiui, kas 15 minučių: minutės laukelyje įrašykite
*/15, o valandos, dienos, mėnesio ir savaitės dienos laukeliuose žvaigždutę. Komanda:/usr/local/bin/php -q /home/gebruiker/domains/jouwdomein.nl/public_html/wp-cron.php >/dev/null 2>&1
Jei WordPress įdiegtas pakatalogyje, nurodykite jį kelyje. - Kitą dieną WordPress skiltyje Įrankiai › Svetainės sveikata patikrinkite, ar nėra pranešimų apie vėluojančias suplanuotas užduotis.
Ir čia laikykitės taisyklės: ne dažniau kaip kartą per 10 minučių. Daugumai svetainių pakanka kas 15 arba 30 minučių.
Cron užduotis neveikia?
Patikrinkite šiuos punktus vieną po kito:
- Perskaitykite išvestį. Laikinai pašalinkite
>/dev/null 2>&1ir peržiūrėkite laišką numatytojoje el. pašto paskyroje arba nustatykite savo adresą. Ten dažnai tiksliai nurodyta, kas negerai. Išvestį taip pat galite rašyti į žurnalo failą, komandos gale pridėję>> /home/gebruiker/cron-log.txt 2>&1. - Patikrinkite kelią. Pranešimas Could not open input file reiškia, kad kelias iki scenarijaus neteisingas. Patikrinkite File Manager: kelias prasideda
/home/gebruiker/domains/. - Patikrinkite PHP versiją. Naudojant
/usr/local/bin/php, užduotis naudoja tą pačią PHP versiją kaip ir Jūsų svetainė. Jei Jūsų scenarijus veikia tik su kita versija, pakeiskite ją skiltyje Select PHP version. - Išbandykite komandą rankiniu būdu. Jei Jūsų paslaugų plane yra Terminal, įklijuokite komandą ten ir pažiūrėkite, kas nutinka, žr. SSH prieiga ir Terminal DirectAdmin. Jei Terminal nėra, atidarykite scenarijų naršyklėje arba cron užduotyje iškvieskite jį per
curl --silent https://www.jouwdomein.nl/taak.php. - Patikrinkite teises. Scenarijus turi būti skaitomas: failams turi būti nustatyta 644, o aplankams 755. Žr. Failų ir aplankų teisės (chmod).
- Patikrinkite laiką. Ties Cronjob will be executed: patikrinkite, ar užduotis vykdoma tada, kada manote. Jei minutės laukelyje yra žvaigždutė, užduotis vykdoma kas minutę. Tai per dažnai.
- Patikrinkite, kiek trunka užduotis. Jei užduotis trunka ilgai arba paleidžiama iš naujo dar nepasibaigus ankstesnei, ji gali užstrigti arba Jūsų paslaugų planas gali pasiekti savo limitus. Tokiu atveju darbą paskirstykite į kelis etapus.
date >> /home/gebruiker/cron-log.txt;.Taip pat žr. DirectAdmin vadove: Numatytoji Jūsų paslaugų plano el. pašto paskyra.
Išsamus paaiškinimas su ekrano nuotraukomis: Cron Jobs: automatinis užduočių vykdymas DirectAdmin vadove.
Norite sužinoti daugiau? Lankykite nemokamą WordPress kursą, pamoka 6.3 Paveikslėliai, PHP ir kiti greičio pagerinimai.
