Tämä on ensimmäinen asia, joka kannattaa ymmärtää.
WP-Cron ei normaalisti ole palvelimella jatkuvasti käynnissä oleva prosessi. WordPress tarkistaa sivulatausten yhteydessä, onko ajastettuja tehtäviä myöhässä.
Jos tehtävä on määrä suorittaa, WordPress yrittää käynnistää cron-ajon.
Jos sivustolla ei käy ketään, ajastus ei siis käyttäydy samalla tavalla kuin järjestelmän oma cron.
Pienellä yrityssivustolla tämä voi olla aivan riittävä ratkaisu.
Jos sivusto on hiljainen öisin ja tehtävä pitäisi suorittaa esimerkiksi tasan kahdelta, kellonaika ei kuitenkaan ole yhtä varma kuin palvelimen oikealla cron-ajolla.
Tämä ero selittää yllättävän monta “Cron ei toimi” -tilannetta.
Kaikki Cron-ongelmat eivät johdu itse ajastuksesta.
Ajastettu tehtävä voi käynnistyä aivan normaalisti ja kaatua vasta sen jälkeen.
Esimerkiksi lisäosa voi yrittää hakea tietoja ulkoisesta API:sta. Yhteys ei onnistu. PHP-prosessi saa virheen. Tai tietokantakysely kestää niin kauan, ettei tehtävä pääse loppuun.
WordPressin näkökulmasta cron käynnistyi.
Käyttäjän näkökulmasta tehtävä ei silti koskaan valmistunut.
Tässä vaiheessa kannattaa tutkia itse hookin toimintaa eikä enää vain sitä, käynnistyykö WP-Cron.
Tämä ero kannattaa pitää mielessä koko tutkimuksen ajan.
Jos ajat WP-CLI:llä:
wp cron event run --due-now
WordPress yrittää suorittaa kaikki tällä hetkellä erääntyneet tapahtumat.
Jos tehtävä toimii näin mutta ei normaalin liikenteen yhteydessä, ongelmaa kannattaa etsiä cronin käynnistysmekanismista.
Jos tehtävä epäonnistuu myös WP-CLI:n kautta, vika on todennäköisemmin itse callbackissa tai sen käyttämässä ympäristössä.
Tämä on yksi nopeimmista tavoista rajata ongelmaa.