WP-Cron översikt

WP-Cron utför specifika uppgifter för WordPress-drivna webbplatser. Namnet Cron kommer från Unix-systemet för schemaläggning av jobb, allt från en gång i minuten till en gång om året. Oavsett om det är rutinunderhåll eller schemalagda varningar kan alla kommandon som kan köras på Unix utan användarintervention schemaläggas som en Cron-uppgift.

WP-Cron liknar Cron, men skiljer sig på ett par mycket viktiga sätt. Denna funktion är utformad enbart för att hantera WordPress rutinuppgifter:

  • Sök efter ny version av WordPress-kärnan, teman och plugins
  • rensa upp spam

Plugins och teman kan lägga till uppgifter som ska utföras med jämna mellanrum. Om du till exempel har ett plugin som skannar Twitter för dina tweets och sedan integrerar dem i kommentarer, är det troligtvis gjort med ett WP-Cron-jobb. WP-Cron öppnar en helt ny värld av saker som en WordPress-Driven webbplats kan göra.

hur utlöses WP-Cron?

den stora skillnaden mellan Cron och WP-Cron är hur WP-Cron utlöses. Cron är en systemprocess som körs varje minut och letar efter uppgifter att utföra. WP-Cron, eftersom det är ett webbaserat system, kan bara köras när någon besöker webbplatsen. Därför, när någon navigerar till din WordPress-webbplats, kontrollerar WP-Cron för att se om något behöver göras. Tack vare WordPress-kärnutvecklarna gör det detta på ett sätt som inte påverkar webbplatsens prestanda negativt.

problem med webbplatser med låg trafik

WordPress-webbplatser med låg trafik kan uppleva överhoppade uppgifter när den här funktionen utlöses av besökare. Om människor inte besöker din webbplats kan WP-Cron inte köras. Det betyder inte att din sida kommer att vara långsam från tidigare jobb när någon så småningom besöker din webbplats. Oavsett hur många uppgifter WP-Cron måste utföra körs de i bakgrunden så att webbplatsens prestanda inte påverkas negativt.

problem med webbplatser med hög trafik

om din WordPress-drivna webbplats är hög trafik kan du stöta på problem med WP-Cron. De viktigaste frågorna som kommer upp är rasförhållanden och långvariga processer.

  • Race skick: När mer än en användare besöker din webbplats och utlöser WP-Cron att utföra samma uppgift. WP-Cron arbetar hårt för att eliminera rasförhållanden, men de kan fortfarande hända, särskilt på webbplatser med hög trafik.
  • lång körningsprocess: alla uppgifter som tar längre tid än standard 60 sekunder att köra. Utvecklare kan justera hur länge en PHP-uppgift får köras med funktionen set_time_limit(). Om detta är inställt på att vara längre än fönstret mellan uppgifter kan du sluta med mer än en kopia av wp-cron.php exekvering.

båda dessa problem behandlas inom WP-crons interna låsning och är inte vanliga problem; de kan dock fortfarande ibland hända.

hantera WP-Cron internt

WP-Cron kommer förkonfigurerad och redo att köras, så du behöver inte göra något för att aktivera det på dina WordPress-webbplatser.

under den första installationen av WordPress konfigureras flera uppgifter automatiskt. Du kan använda några enkla kommandon från kommandoraden, eller en av flera plugins, för att hitta de exakta jobb som körs av WP-Cron.

WP-Cron från CLI

om du har Terminus installerat, kan du enkelt se alla detaljer om vad som händer med WP-Cron. Terminus, genom WP-CLI, kan visa dig detaljer som:

  • Vad är planerat att köra
  • vad kommer att köras nästa
  • händelsekrokarna som är inställda

Du kan också schemalägga dina egna jobb, utföra befintliga jobb och hantera nästan allt WP-Cron relaterat—allt från kommandoraden.

en av de första sakerna du vill göra är att testa WP-Cron för att se till att allt fungerar korrekt. När du kör kommandot nedan, se till att ersätta SITE_NAME med webbplatsens namn från din Pantheon-instrumentpanel och ersätt ENV_NAME med önskad miljö (”dev”, ”test”, ”live” eller multidev-filialnamn).

terminus wp <site>.<env> -- cron test

om allt fungerar korrekt ser resultatet ut så här:

Success: WP-Cron spawning is working as expected.

detta låter dig veta att WP-Cron fungerar korrekt på din webbplats. Härifrån kan du köra alla cron-relaterade kommandon med WP-CLI. När du använder WP-CLI för att hantera din Pantheon-värd WordPress-webbplats bör du använda Terminus. Kommandoformatet är som följer:

terminus wp <site>.<env> -- cron <your wp-cron command and switches here>

allaterminus wp kommandon kräver ett webbplatsnamn och en miljö för att fungera.

Obs

om du har skyddat din webbplats med säkerhetsinställningen på instrumentpanelen kan Terminus inte köra cron och du kan se statusrapportfel på instrumentpanelen.

Plugins

Om du vill hålla ett öga på WP-Cron men inte gillar kommandoraden finns det flera plugins du kan använda. WP Crontrol visar till exempel alla händelser som planeras för din webbplats. Du kan skapa, redigera, köra eller ta bort jobb direkt från din WordPress-administratörspanel. Du kan också ansluta nya åtgärder till scheman eller flytta befintliga åtgärder till nya scheman från avsnittet Verktyg.

WPX Cron Manager Lite kommer att göra ett liknande jobb med ett något annorlunda användargränssnitt. Detta plugin kräver att du gör en engångsinstallation av WPX framework, som du kan göra direkt från plugin manager-sidan.

hantera WP-Cron externt

om du letar efter mer kontroll över webbplatsens cron-jobb, eller om du inte vill att WP-Cron ska hantera uppgifter internt, kan du istället använda externa crons. Detta kommer att lösa problemen som diskuterats ovan för webbplatser med hög trafik och låg trafik.

inaktivera WP-Cron

det första du behöver göra är att inaktivera WP-crons interna bearbetning. Lägg till följande rad i dinwp-config.php fil:

wp-config.php
define('DISABLE_WP_CRON', true);

Obs

det finns många viktiga uppgifter som WP-Cron tar hand om, så var beredd att slutföra alla steg nedan.

gratis tjänster

När du har inaktiverat WP-Cron behöver du en tjänst som anropar en URL med jämna mellanrum. Det enklaste sättet att göra detta är att skapa ett konto med en gratis cron-tjänst:

  • EasyCron
  • Set Cron Job
  • cron-job

någon av ovanstående tjänster kommer att få jobbet gjort. Genom att inaktivera WP-Cron har du stängt av automatisk kontroll och anrop av skriptet wp-cron.php. Du måste nu ringa den webbadressen själv med en av Tjänsterna ovan. Med de flesta av dem är det lika enkelt som det här:

  1. skapa ett konto
  2. skapa ett jobb som kallar https://yourdomain.tld/wp-cron.php?doing_wp_cron

Obs

ersätt `dindomän.tld ’ med din domän.

beroende på vilken tjänst du använder kan du ha möjlighet att ställa in flera jobb vid olika tidpunkter. Att skapa ett enda jobb som kallar din webbplats wp-cron.php script var 15: e minut är allt du behöver. WP-Cron tar hand om resten. Om du skapar nya scheman som måste köras oftare än en gång var 15: e minut måste du justera ditt jobb därefter.

det är viktigt att du inte lägger till ett värde idoing_wp_cron frågevariabeln; det måste vara tomt för att cron ska fungera korrekt.

använda din egen Server

om du administrerar din egen server kan du använda cron-tjänsten för att ringa till skriptet wp-cron.php. Du måste lära dig hur du ställer in ett Cron-jobb korrekt och använder något som wget eller curl för att hämta en webbsida. Om du inte vidtar särskilda försiktighetsåtgärder är det inte säkrare att använda din egen server jämfört med en webbaserad cron-tjänst; det ger dig dock mer kontroll.

säkerhet

för det mesta är wp-cron.php säkert. Det finns bara en parameter som du kan skicka in som påverkar skriptet (doing_wp_cron). Detta$_GET – värde filtreras inte; det används bara som en flagga och inte som inmatning för en process eller variabel. Utöver det ignoreras all inmatning.

medan inget skript på en server som är ansluten till Internet är 100% säkert, har wp-cron.php för närvarande inga kända sårbarheter eller exploater.

WordPress Cron Plugins

WordPress har många plugins som styr både interna WP-Cron-uppgifter och externa Cron-jobb. Eftersom Pantheon inte tillhandahåller Cron-tjänster rekommenderar vi inte eller avskräcker användningen av ett visst plugin. Vi uppmuntrar dig att kolla in listan över WordPress Cron-Plugins och experimentera i din Dev-miljö för att hitta den som bäst passar dina behov.

Lämna ett svar

Din e-postadress kommer inte publiceras.