CRON jobs används för att schemalägga aktiviteter periodiskt vid fasta tider, datum eller intervall på din WordPress-webbplats. Några exempel på cron-jobb på wordpress är schemaläggning av ett inläggs publicering, sökning efter uppdateringar eller en säkerhetskopia som körs på ett för-definierat schema.
I WordPress hanteras detta av WP-Cron, som används för att simulera en system-cron. Men beroende på mängden trafik till din webbplats, kan den inbyggda cron-hanteraren faktiskt börja påverka din sidas laddningstid. Så idag ska vi visa dig hur du inaktiverar WP-Cron (wp-cron.php
) och istället använder ett system-cron för snabbare prestanda.
Prestandaproblem med WP-Cron
Kinsta arbetar med en hel del högt trafikerade och krävande webb-platser. På grund av detta har vi sett en hel del prestanda-problem med WordPress inbyggda Cron-hanterare: WP-Cron. Först och främst är det viktigt att förstå att WP-Cron inte är en riktig cron, det är helt enkelt något som WordPress har skapat för att efterlikna vad en system-cron gör.
WP-Cron körs inte kontinuerligt. Som standard, körs wp-cron.php
på varje laddning av webbsidan. Om man har en högt trafikerad webb-plats kan detta orsaka problem. Om en webbplats inte har tillräckligt med PHP-bearbetare, kan en begäran ibland komma in, och wordpress leker cron utan att få fatt på nån PHP-bearbetare. I dessa fall väntar cron förgäves och laddningen fördröjs.
Det kan även vara tvärtom. Om en webbplats inte har mycket trafik kan scheman missas på grund av att en sida aldrig blivit inläst.
En bättre metod är att inaktivera WP-Cron och använda system- cron istället. Detta Cron körs på ett för-definierat schema och rekommenderas även i den officiella Plugin-handboken
Inaktivera WP-Cron
För att inaktivera WP-Cron, lägg till följande till din wp-config.php-
fil, strax före raden som säger ”Det är allt, sluta redigera!” Obs: Detta inaktiverar Cron från att köras när sidan laddas, inte när du kallar det direkt via wp-cron.php
.
define ('DISABLE_WP_CRON', true);
Så här schemalägger du System-Cron
Du kommer att behöva schemalägga wp-cron.php
från din server.
Om din webbplats är en multisida finns det några extra installationssteg som du måste vidta så att cron jobs körs för dina underwebbplatser. Här är ett par resurser som vi kan rekommendera för detta:
- Använd WP CLI för att köra Cron jobs på Multisides-nätverk
- Kör WordPress cron på en multisides-instans
Om du har en enda webbplats på WordPress är en god nyhet att om du är en Kinsta-kund utlöser cron på vår server-sida wp-cron.php
var 15: e minut som standard. 💪 Detta kommer att köra alla schemalagda WordPress-crons. Och om det krävs kan du öka frekvensen genom att höra av dig till vårt supportteam.
Om du är bekant med SSH kan du även följa vår handledning om hur du hanterar server-crons från kommandoraden i Kinsta. Alla våra hosting-planer inkluderar SSH-åtkomst.
Om du inte är kinsta-kund rekommenderar vi att du kollar in Konfigurera WordPress Cron jobs korrekt för att lära dig hur du konfigurerar system-crons.
Skapa Cron-jobb i cPanel
Om du använder en värd med cPanel kan du även skapa en system-cron från kontrollpanelen. Se till att du inaktiverar standardWP-Cron ovan först.
Steg 1
Logga in på cPanel. Klicka på Cron-jobb i avsnittet Avancerat.
Steg 2
Under avsnittet Lägg till nytt Cron-jobb kan du välja mellan ett antal olika för-definierade scheman, till exempel två gånger per timme eller en gång per vecka. Ditt webbhotell har troligen en gräns för hur ofta de tillåter cron-jobb att köras. Två gånger per timme är en vanlig inställning för delade hostar.
Steg 3
Lägg till följande kommando. Ersätt https://domain.com
med ditt domännamn. Det här kommandot kan variera något beroende på hur din host konfigureras. Klicka sedan på ”Lägg till nytt Cron-jobb”.
wget -q -O - https://domain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1
Delen >/dev/null 2>&1
1 i kommandot ovan inaktiverar e-postmeddelanden.
Schemalägg Crons med tredjepartslösning
Om du inte är bekväm med att konfigurera cron-jobb på servern eller om ditt webbhotell inte ger dig åtkomst kan du även använda en tredjepartslösning som EasyCron.