WP-Cron Prezentare generală

WP-Cron execută sarcini specifice pentru site-uri WordPress alimentat. Numele Cron provine de la sistemul Unix pentru programarea lucrărilor, variind de la o dată pe minut la o dată pe an. Fie că este vorba de întreținere de rutină sau alerte programate, orice comandă care poate fi executată pe Unix fără intervenția utilizatorului poate fi programată ca o sarcină Cron.

WP-Cron este similar în natură cu Cron, dar diferă în câteva moduri foarte importante. Această caracteristică este concepută exclusiv pentru a gestiona sarcinile de rutină WordPress:

  • verificați noua versiune a nucleului WordPress, temele și pluginurile
  • curățați spamul

pluginurile și temele pot adăuga sarcini care trebuie executate la intervale regulate. De exemplu, dacă aveți un plugin care scanează Twitter pentru tweet-urile dvs. și apoi le încorporează în comentarii, cel mai probabil se face cu o lucrare WP-Cron. WP-Cron deschide o lume cu totul nouă de lucruri pe care le poate face un site alimentat de WordPress.

cum se declanșează WP-Cron?

diferența majoră dintre Cron și WP-Cron este modul în care este declanșat WP-Cron. Cron este un proces de sistem care rulează în fiecare minut și caută sarcini de executat. WP-Cron, deoarece este un sistem bazat pe web, poate rula numai atunci când cineva vizitează site-ul. WordPress, wp-Cron verifică dacă trebuie făcut ceva. Datorită dezvoltatorilor de bază WordPress, face acest lucru într-un mod care nu afectează negativ performanța site-ului dvs.

probleme cu site-urile cu trafic redus

site-urile WordPress cu trafic redus pot întâmpina SARCINI omise atunci când această caracteristică este declanșată de vizitatori. Dacă oamenii nu vă vizitează site-ul, WP-Cron nu poate executa. Acest lucru nu înseamnă că pagina dvs. va fi lentă față de locurile de muncă anterioare atunci când cineva vă vizitează în cele din urmă site-ul. Indiferent de câte sarcini trebuie să execute WP-Cron, acestea sunt rulate în fundal, astfel încât performanța site-ului dvs. să nu fie afectată negativ.

probleme cu site-urile cu trafic ridicat

dacă site-ul dvs. alimentat de WordPress are trafic ridicat, este posibil să întâmpinați probleme cu WP-Cron. Principalele probleme care apar sunt condițiile de cursă și procesele de lungă durată.

  • starea cursei: Când mai mult de un utilizator vizitează site-ul dvs. și declanșează WP-Cron pentru a executa aceeași sarcină. WP-Cron lucrează din greu pentru a elimina condițiile de cursă, dar se pot întâmpla în continuare, în special pe site-urile cu trafic ridicat.
  • proces de rulare lung: orice sarcină care durează mai mult decât standardul 60 secunde pentru a rula. Dezvoltatorii pot ajusta cât timp este permisă rularea unei sarcini PHP cu funcția set_time_limit(). Dacă aceasta este setată să fie mai lungă decât fereastra dintre activități, atunci puteți termina cu mai multe copii ale wp-cron.php executare.ambele probleme sunt abordate în cadrul blocării interne a WP-Cron și nu sunt probleme comune; cu toate acestea, ele se pot întâmpla ocazional.

    gestionați WP-Cron intern

    WP-Cron vine preconfigurat și gata de rulare, deci nu trebuie să faceți nimic pentru a-l activa pe site-urile dvs.

    în timpul instalării inițiale a WordPress, mai multe sarcini sunt configurate automat. Puteți utiliza câteva comenzi simple din linia de comandă sau unul dintre mai multe pluginuri pentru a găsi lucrările exacte rulate de WP-Cron.

    WP-Cron din CLI

    Dacă aveți Terminal instalat, puteți vedea cu ușurință toate detaliile a ceea ce se întâmplă cu WP-Cron. Terminus, prin WP-CLI, vă poate arăta detalii cum ar fi:

    • ce este programat să ruleze
    • ce va rula în continuare
    • cârligele de evenimente care sunt configurate

    de asemenea, puteți programa propriile locuri de muncă, executa locuri de muncă existente, și de a gestiona doar despre tot WP-Cron legate—toate din linia de comandă.

    unul dintre primele lucruri pe care veți dori să le faceți este să testați WP-Cron pentru a vă asigura că totul funcționează corect. Când executați comanda de mai jos, asigurați-vă că înlocuiți SITE_NAME cu numele site-ului dvs. din tabloul de bord Pantheon și înlocuiți ENV_NAME cu mediul dorit („dev”, „test”, „live” sau numele sucursalei multidev).

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

    dacă totul funcționează corect, rezultatul arată astfel:

    Success: WP-Cron spawning is working as expected.

    Acest lucru vă permite să știți că WP-Cron funcționează corect pe site-ul dvs. De aici, puteți rula orice comandă legată de cron cu WP-CLI. Când utilizați WP-CLI pentru a vă gestiona site-ul WordPress găzduit de Pantheon, ar trebui să utilizați Terminus. Formatul comenzii este următorul:

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

    toate comenzileterminus wp necesită un nume de site și un mediu pentru a funcționa.

    notă

    dacă v-ați protejat site-ul utilizând setarea de securitate de pe tabloul de bord, Terminus nu va putea executa cron și este posibil să vedeți erori de raport de stare pe tabloul de bord.

    pluginuri

    Dacă doriți să urmăriți WP-Cron, dar nu vă place linia de comandă, există mai multe pluginuri pe care le puteți utiliza. WP Crontrol, de exemplu, vă va arăta toate evenimentele programate pentru site-ul dvs. Puteți crea, edita, rula sau șterge lucrări imediat din tabloul de bord al administratorului WordPress. De asemenea, puteți conecta acțiuni noi în programe sau puteți muta acțiunile existente în programe noi din secțiunea Instrumente.

    WPX Cron Manager Lite va face o treabă similară cu o interfață ușor diferită. Acest plugin necesită să efectuați o instalare unică a cadrului WPX, pe care o puteți face direct din pagina managerului de pluginuri.

    gestionați WP-Cron extern

    Dacă căutați mai mult control asupra lucrărilor cron ale site-ului dvs. sau nu doriți ca wp-Cron să gestioneze sarcinile intern, puteți utiliza crons extern. Acest lucru va rezolva problemele discutate mai sus pentru site-urile cu trafic ridicat și trafic redus.

    Disable WP-Cron

    primul lucru pe care trebuie să-l faceți este să dezactivați procesarea internă a WP-Cron. Adăugați următoarea linie la fișierul wp-config.php:

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

    notă

    există multe sarcini importante de care se ocupă WP-Cron, așa că fiți pregătiți să parcurgeți toți pașii de mai jos.

    servicii gratuite

    după ce ați dezactivat WP-Cron, veți avea nevoie de un serviciu care apelează o adresă URL la intervale regulate. Cel mai simplu mod de a face acest lucru este să configurați un cont cu un serviciu cron gratuit:

    • EasyCron
    • Set Cron Job
    • cron-job

    oricare dintre serviciile de mai sus va face treaba. Dezactivând WP-Cron, ați dezactivat verificarea și apelarea automată a scriptului wp-cron.php. Acum va trebui să apelați singur adresa URL utilizând unul dintre serviciile de mai sus. Cu cele mai multe dintre ele, este la fel de ușor ca aceasta:

    1. Configurarea unui cont
    2. Configurarea unui loc de muncă care solicită https://yourdomain.tld/wp-cron.php?doing_wp_cron

    notă

    înlocuiți `yourdomain.tld ‘ cu domeniul tău.

    în funcție de serviciul pe care îl utilizați, este posibil să aveți posibilitatea de a configura mai multe locuri de muncă în momente diferite. Crearea unui singur loc de muncă care apelează site-ul dvs. wp-cron.php script la fiecare 15 minute este tot ce ar trebui să aveți nevoie. WP-Cron se va ocupa de restul. Dacă creați programe noi care trebuie rulate mai des decât o dată la 15 minute, va trebui să vă ajustați locul de muncă în consecință.

    este important să nu adăugați o valoare variabilei de interogaredoing_wp_cron; trebuie să fie goală pentru ca cron să funcționeze corect.

    utilizarea propriului Server

    Dacă administrați propriul server, puteți utiliza serviciul cron pentru a efectua un apel cătrewp-cron.php script. Va trebui să învățați cum să configurați corect o lucrare Cron și să utilizați ceva de genul wget sau curl pentru a prelua o pagină web. Cu excepția cazului în care luați măsuri de precauție speciale, nu este mai sigur să utilizați propriul server față de un serviciu cron bazat pe web; cu toate acestea, vă oferă mai mult control.

    securitate

    în cea mai mare parte,wp-cron.php este sigur. Există un singur parametru pe care îl puteți transmite care va afecta scriptul (doing_wp_cron). Această valoare$_GET nu este filtrată; este folosit doar ca steag și nu ca intrare pentru un proces sau variabilă. Dincolo de asta, toate intrările sunt ignorate.

    deși niciun script de pe un server atașat la Internet nu este 100% sigur,wp-cron.php în prezent nu are vulnerabilități sau exploatări cunoscute.

    WordPress Cron Plugins

    WordPress are multe pluginuri care controlează atât sarcinile interne WP-Cron, cât și lucrările Cron externe. Deoarece Pantheon nu oferă servicii Cron, nu recomandăm și nu descurajăm utilizarea niciunui plugin dat. Vă încurajăm să consultați Lista pluginurilor WordPress Cron și să experimentați în mediul dvs. de dezvoltare pentru a găsi cel care se potrivește cel mai bine nevoilor dvs.

Lasă un răspuns

Adresa ta de email nu va fi publicată.