iControlWP

I denne artikel forklarer vi:

  • Hvad er WP Cron?
  • Hvordan virker det?
  • Hvorfor fejler det?
  • Hvilke problemer forårsager WP Cron-fejl?
  • Sådan retter du WP Cron

Så lad os komme i gang…

Hvad er WP Cron?

Cron er en UNIX-kommando til planlægning af opgaver, der skal udføres engang i fremtiden. Den bruges normalt til at planlægge et job, der udføres periodisk.

WordPress bruger en fil, der hedder wp-cron.php som et virtuelt cronjob eller en planlagt opgave for at automatisere ting som

  • publicering af planlagte indlæg
  • kontrol af plugin- eller temaopdateringer
  • sendelse af e-mail-meddelelser
  • backup af
  • WordPress automatiske opdateringer
  • … og så videre.

Hvordan virker det?

På hver sideindlæsning kontrollerer WordPress, om der er behov for, at WP Cron skal køre. Hvis der er et behov, forsøger den at foretage en anmodning via HTTP til filen wp-cron.php.

Kaldet denne fil hjælper med at holde WP Cron kørende som en separat proces i baggrunden uden at forsinke sideindlæsningstiden for brugeren. Når WP Cron starter, fortsætter den med at køre, indtil alle de nødvendige job er udført, eller indtil den når et udførelsestidspunkt som angivet i serverkonfigurationen.

Det er vigtigt at forklare, at WordPress i sin standardkonfiguration ikke bruger et rigtigt cronjob til planlægning og andre relaterede opgaver. I stedet kører WordPress filen wp-cron.php, hver gang en side indlæses på et WordPress-websted. Den spørger grundlæggende “er det tid til at gøre noget endnu?”.

Hvis der er nogen opgaver planlagt på tidspunktet for indlæsning af siden, vil de blive kørt. Men det skal her bemærkes, at WP Cron ikke kører konstant som systemcron gør.

WP Cron vil kun blive udløst ved sideindlæsning – dvs. når nogen besøger en side på dit websted. Det betyder, at hvis du f.eks. har en opgave planlagt til kl. 16.00, men ikke har nogen besøgende før kl. 22.00, vil din opgave ikke blive kørt før da.

Bemærk: Nogle gange kan du se URL’er med ?doing_wp_cron= efterfulgt af en talstreng.

For eksempel:

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

Dette sker, fordi WordPress for at udføre en baggrundsbehandling (som f.eks. udgivelse af planlagte indlæg) omdirigerer dig til URL’en med ?doing_wp_cron som tillæg.

Læs mere om dette her.

Hvorfor fejler det?

Så, når nogen lander på en side på dit WordPress-websted, vil wp-cron.php-filen kunne fyre op og kontrollere, om den skal sende noget

På mange WordPress-værter vil dette køre som planlagt. Men nogle værter deaktiverer denne funktionalitet fra at køre, fordi det betyder, at et stort antal besøgende kan affyre de virtuelle cron-jobs mange gange, hvilket bruger ressourcerne på din server. Det er også en potentiel sikkerhedssårbarhed.

En anden grund er, at nogle plugins og temaer kan forårsage fatale fejl under cron-behandlingen (da de måske ikke er blevet testet korrekt), og dette vil ødelægge kørslen af cron-processen.

Hinvis: Selv om det ikke er afgørende og egentlig kun tjener som et fingerpeg i tilfælde af større problemer, er der på sikkerheds-dashboardet for Shield en post under afsnittet “Seneste hændelseslog”, der viser sidste gang den simple test-cron kørte:

Det vil fortælle dig, om dine crons generelt fungerer eller ej. Det betyder ikke, at alle dine crons fungerer, men det betyder, at dit WP Cron-system sandsynligvis er i orden.

Note: Du kan udløse WP Cron manuelt. Det første du skal gøre er at konstruere linket, og sådan gør du:

  1. Tag din admin-URL, f.eks. example.com/wp-admin/
  2. Erstat “/wp-admin/” med “/wp-cron.php?setcronjob”

Linket vil se sådan ud:

example.com/wp-cron.php?setcronjob

Åbn blot dette link i en separat fane, og WP Cron vil blive udløst.

Hvilke problemer forårsager WP Cron-fejl?

Hvis cron bryder, kører ikke korrekt:

  • WordPress automatiske opdateringer vil ikke køre
  • Kontrol for plugins eller temaopdateringer vil mislykkes
  • Skemaer indlæg vil ikke blive offentliggjort
  • Hvis WordPress ikke bruger et rigtigt cron job til planlægning og andre relaterede opgaver, vil e-mail-meddelelser, automatiske fornyelser, faktureringsafgifter, meddelelser om ind/ud af lager mislykkes.
  • Backup af webstedet vil mislykkes for backup-plugins, der er afhængige af cron

Også,

  • Der kan være en lang forsinkelse mellem frigivne opdateringer og installerede opdateringer
  • Premium-plugins linker ikke deres opdateringskode korrekt

    Visse premium-plugins har ikke testet deres brugerdefinerede opdateringskode med WordPress-cron’en. Det betyder, at når cronen køres, fungerer deres opdateringskode ikke, og automatiske opdateringer af premium-aktiver mislykkes.

Dette er blot nogle af de mest mærkbare problemer, vi har set.

Bemærk, at hvis cronen ikke fungerer, vil alle automatiske opgaver mislykkes.

Sådan retter du WP Cron

WP Cron kan være problematisk, og det er et tricky arbejde at indsnævre, hvor en cron går ned.

Vi kan varmt anbefale dig at læse denne artikel her.

Du kan også læse:

  • Hvorfor virker WordPress automatiske opdateringer ikke altid?

Leave a Reply