iControlWP

Tässä artikkelissa kerromme:

  • Mikä on WP Cron?
  • Miten se toimii?
  • Miksi se ei toimi?
  • Mitä ongelmia WP Cronin virheet aiheuttavat?
  • Miten WP Cron korjataan

Aloitetaan siis…

Mikä on WP Cron?

Cron on UNIX-komento, jolla voidaan ajoittaa töitä joskus tulevaisuudessa suoritettaviksi. Sitä käytetään yleensä ajoittamaan työtä, joka suoritetaan määräajoin.

WordPress käyttää tiedostoa nimeltä wp-cron.php virtuaalisena cron-työnä eli ajastettuna tehtävänä automatisoidakseen asioita, kuten

  • aikataulun mukaisten postausten julkaiseminen
  • liitännäis- tai teemapäivitysten tarkistaminen
  • sähköposti-ilmoitusten lähettäminen
  • varmuuskopiointi
  • WordPressin automaattiset päivitykset
  • … ja niin edelleen.

Miten se toimii?

Joka kerta sivun latautuessa WordPress tarkistaa, onko WP Cronin suorittaminen tarpeen. Jos tarvetta on, se yrittää tehdä pyynnön HTTP:n kautta tiedostoon wp-cron.php.

Tiedoston kutsuminen auttaa pitämään WP Cronin käynnissä erillisenä prosessina taustalla ilman, että sivun latausaika käyttäjälle viivästyy. Kun WP Cron käynnistyy, se jatkaa suoritustaan, kunnes kaikki tarvittavat työt on suoritettu tai kunnes se saavuttaa palvelimen asetuksissa määritellyn suoritusajan.

On tärkeää selittää, että oletuskonfiguraatiossaan WordPress ei käytä varsinaista cron-työtä aikataulutukseen ja muihin vastaaviin tehtäviin. Sen sijaan aina kun WordPress-sivustolla ladataan sivu, WordPress ajaa wp-cron.php-tiedoston. Se periaatteessa kysyy: ”Onko jo aika tehdä jotain?”.

Jos sivun lataushetkellä on ajastettuja tehtäviä, ne suoritetaan. Tässä yhteydessä on kuitenkin huomattava, että WP Cron ei toimi jatkuvasti kuten järjestelmän cron.

WP Cron käynnistyy vain sivun latautuessa – eli kun joku vierailee sivustosi sivulla. Tämä tarkoittaa, että jos sinulla on esimerkiksi tehtävä ajoitettu kello 16:00, mutta kävijöitä on vasta kello 22:00, tehtäväsi suoritetaan vasta silloin.

Huomautus: Joskus saatat nähdä URL-osoitteita, joissa on ?doing_wp_cron=, jota seuraa numerosarja.

Esimerkiksi:

https://example.com/what-is-wp-cron-article?doing_wp_cron=123456.874251298799871371475

Tämä tapahtuu siksi, että WordPress ohjaa sinut URL-osoitteeseen, jossa on ?doing_wp_cron-liite.

Lue lisää tästä täältä.

Miksi se ei onnistu?

Kun siis joku laskeutuu mille tahansa sivulle WordPress-sivustollasi, wp-cron.php-tiedosto voisi käynnistyä ja tarkistaa, pitääkö sen lähettää jotain

Monilla WordPress-isännöitsijöillä tämä toimii tarkoituksenmukaisesti. Jotkut isännät kuitenkin estävät tämän toiminnon suorittamisen, koska se tarkoittaa, että suuret kävijämäärät voivat laukaista virtuaalisen cron-työn monta kertaa, mikä kuluttaa palvelimesi resursseja. Se on myös mahdollinen tietoturva-aukko.

Toinen syy on se, että jotkin lisäosat ja teemat voivat aiheuttaa kohtalokkaita virheitä cron-käsittelyn aikana (koska niitä ei ehkä ole testattu oikein), ja tämä katkaisee cron-prosessin suorittamisen.

Vihje: Vaikka se ei olekaan ratkaiseva ja toimii oikeastaan vain osoituksena suurissa ongelmissa, Shieldin Security Dashboardissa on ”Recent Events Log” -osion alla merkintä, joka näyttää, milloin yksinkertainen testi-cron on viimeksi suoritettu:

Se kertoisi, toimiiko cronisi yleensä vai ei. Se ei tarkoita, että kaikki cronisi toimivat, mutta se tarkoittaa, että WP Cron -järjestelmäsi on todennäköisesti kunnossa.

Huomautus: Voit käynnistää WP Cronin manuaalisesti. Ensin on rakennettava linkki, ja näin se tehdään:

  1. Vie admin-osoitteesi URL-osoite, esim. example.com/wp-admin/
  2. Korvaa ”/wp-admin/” osoitteella ”/wp-cron.php?”.setcronjob”

Linkki näyttää tältä:

example.com/wp-cron.php?setcronjob

Avaat vain tuon linkin erillisessä välilehdessä ja WP Cron käynnistyy.

Mitä ongelmia WP Cronin virheet aiheuttavat?

Jos cron rikkoutuu, ei toimi oikein:

  • WordPressin automaattiset päivitykset eivät toimi
  • Liitännäisten tai teemojen päivitysten tarkistaminen ei onnistu
  • Aikataulujen viestejä ei julkaista
  • Jos WordPress ei käytä todellista cron-työtä aikatauluttamiseen ja muihin siihen liittyviin tehtäviin, sähköposti-ilmoitukset, automaattiset uudistukset, laskutusmaksut, varastossa/varastosta poistumisilmoitukset epäonnistuvat.
  • Sivuston varmuuskopiointi epäonnistuu varmuuskopiointiliitännäisten osalta, jotka ovat riippuvaisia cronista

Myös,

  • julkaistujen päivitysten ja asennettujen päivitysten välillä voi olla pitkä viive
  • Premium-liitännäiset eivät linkitä päivityskoodiaan oikein

    Tietyt premium-liitännäiset eivät ole testanneet räätälöityä päivityskoodiaan WordPressin cronin kanssa. Tämä tarkoittaa, että kun cron ajetaan, niiden päivityskoodi ei toimi ja premium-ominaisuuksien automaattiset päivitykset epäonnistuvat.

Nämä ovat vain muutama havaituista ongelmista, joita olemme havainneet.

Huomaa, että jos cron ei toimi, kaikki automaattiset tehtävät epäonnistuvat.

Miten korjata WP Cron

WP Cron voi olla ongelmallinen ja sen rajaaminen, missä cron kaatuu, on hankalaa työtä.

Suosittelemme sinua lukemaan tämän artikkelin täältä.

Voit lukea myös:

  • Miksi WordPressin automaattiset päivitykset eivät aina toimi?

Leave a Reply