iControlWP

I den här artikeln förklarar vi:

  • Vad är WP Cron?
  • Hur fungerar det?
  • Varför misslyckas det?
  • Vilka problem orsakar WP Cron-fel?
  • Hur man åtgärdar WP Cron

Så, låt oss börja…

Vad är WP Cron?

Cron är ett UNIX-kommando för att schemalägga jobb som ska utföras någon gång i framtiden. Det används normalt för att schemalägga ett jobb som utförs periodiskt.

WordPress använder en fil som heter wp-cron.php som ett virtuellt cronjobb eller schemalagd uppgift för att automatisera saker som

  • publicering av schemalagda inlägg
  • kontroll av uppdateringar av insticksmoduler eller teman
  • sändning av e-postmeddelanden
  • backupering
  • WordPress automatiska uppdateringar
  • …. och så vidare.

Hur fungerar det?

Vid varje sidladdning kontrollerar WordPress om det finns ett behov av att WP Cron körs. Om det finns ett behov försöker den göra en förfrågan via HTTP till filen wp-cron.php.

Att anropa den här filen hjälper till att hålla WP Cron igång som en separat process i bakgrunden utan att fördröja sidladdningstiden för användaren. När WP Cron startar fortsätter den att köras tills alla nödvändiga jobb är slutförda eller tills den når en exekveringstid som anges i serverkonfigurationen.

Det är viktigt att förklara att WordPress i sin standardkonfiguration inte använder ett riktigt cron-jobb för schemaläggning och andra relaterade uppgifter. Istället kör WordPress filen wp-cron.php när en sida laddas på en WordPress-webbplats. Den frågar i princip ”är det dags att göra något ännu?”.

Om det finns några uppgifter schemalagda vid tidpunkten för sidladdningen kommer de att köras. Men det måste noteras här att WP Cron inte körs konstant som systemets cron gör.

WP Cron utlöses endast vid sidladdning – dvs. när någon besöker en sida på din webbplats. Detta innebär att om du till exempel har en uppgift schemalagd för klockan 16.00 men inte har några besökare förrän klockan 22.00 kommer uppgiften inte att köras förrän då.

Notera: Ibland kan du se webbadresser med ?doing_wp_cron= följt av en siffersträng.

Till exempel:

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

Detta beror på att WordPress, för att göra en viss bakgrundsbearbetning (t.ex. publicera schemalagda inlägg), omdirigerar dig till webbadressen med ?doing_wp_cron.

Läs mer om detta här.

Varför misslyckas det?

När någon landar på en sida på din WordPress-webbplats, så omdirigeras wp-cron.php-filen kan starta och kontrollera om den behöver skicka något

På många WordPress-värdar kommer detta att köras som avsett. Men vissa värdar inaktiverar denna funktionalitet från att köras eftersom det innebär att ett stort antal besökare kan starta de virtuella cronjobben många gånger och använda resurserna på din server. Det är också en potentiell säkerhetsbrist.

En annan orsak är att vissa plugins och teman kan orsaka fatala fel under cronbehandlingen (eftersom de kanske inte har testats på rätt sätt) och detta bryter körningen av cronprocessen.

Hänvisning: Även om det inte är avgörande och egentligen bara fungerar som en fingervisning vid större problem, finns det på säkerhetsinstrumentpanelen för Shield en post under avsnittet ”Loggbok för senaste händelser” som visar när den enkla testcronen senast kördes:

Det skulle kunna tala om för dig om dina croner generellt sett fungerar eller inte. Det betyder inte att alla dina crons fungerar, men det betyder att ditt WP Cron-system förmodligen är OK.

Notera: Du kan aktivera WP Cron manuellt. Det första du måste göra är att konstruera länken, och så här gör du:

  1. Ta din admin-URL, t.ex. example.com/wp-admin/
  2. Ersätt ”/wp-admin/” med ”/wp-cron.php?setcronjob”

Länken kommer att se ut så här:

example.com/wp-cron.php?setcronjob

Öppna den länken i en separat flik och WP Cron kommer att utlösas.

Vilka problem orsakar WP Cron-fel?

Om cron går sönder, körs inte korrekt:

  • WordPress automatiska uppdateringar kommer inte att köras
  • Kontrollen av plugins eller temauppdateringar kommer att misslyckas
  • Skemalagda inlägg kommer inte att publiceras
  • Om WordPress inte använder ett riktigt cronjobb för schemaläggning och andra relaterade uppgifter, misslyckas e-postmeddelanden, automatiska förnyelser, faktureringsavgifter, meddelanden om att det finns i/utanför lager.
  • Backup av webbplatser kommer att misslyckas för backup-plugins som är beroende av cron

Också,

  • Det kan vara en lång fördröjning mellan uppdateringar som släpps och uppdateringar som installeras
  • Premium-plugins länkar inte in sin uppdateringskod på rätt sätt

    Bestämda premium-plugins har inte testat sin anpassade uppdateringskod med WordPress cron. Detta innebär att när cron körs fungerar inte deras uppdateringskod och automatiska uppdateringar av premiumtillgångar misslyckas.

Det här är bara några av de mest märkbara problemen som vi har sett.

Observera att om cron inte fungerar kommer alla automatiska uppgifter att misslyckas.

Hur man fixar WP Cron

WP Cron kan vara problematisk och att begränsa var en cron kraschar är knepigt arbete.

Vi rekommenderar starkt att du läser den här artikeln här.

Du kan också läsa:

  • Varför fungerar inte WordPress automatiska uppdateringar alltid?

Leave a Reply