Ellenőrizze, hogy a WP-Cron engedélyezve van-e, létrejön-e az indító kérés, és mely események késnek. Keresse meg a hookot, annak tulajdonosát és a callback hibáját, ne csak a tételek számát nézze. Megbízható szerveren a WP-Cron rendszerszintű cronnal is indítható; a feladatoknak idempotensnek és monitorozottnak kell lenniük.
A WP-Cron a WordPress ütemezett feladatait futtatja, például egy cikk közzétételét, az ideiglenes adatok törlését vagy a szinkronizálást. A rendszerszintű ütemezővel ellentétben alapértelmezés szerint a weboldal meglátogatása aktiválja. Kis forgalmú weboldalon a feladat késhet, nagy terhelésnél pedig a futtatások átfedhetik vagy blokkolhatják egymást. Ráadásul a bővítmények saját eseményeket adnak hozzá, és eltávolításuk után nem mindig takarítják ki az ütemezést.
Ha nem megy ki egy e-mail, vagy nem fut le egy import, a csapat gyakran kézzel indít újabb kísérletet anélkül, hogy megállapítaná az állapotot. Így duplikációk vagy nagyobb sor keletkezhet. A diagnosztikához szükség van a hook nevére, az ütemezett időpontra, az argumentumokra, az utolsó eredményre és az alkalmazásnaplókra. WooCommerce esetén az Action Scheduler is használatban lehet, amelynek saját tárolója és adminisztrációs nézete van.
Értse meg a futtatást és az időbeli elvárásokat
A WordPress az eseményt a legközelebbi időpontra menti, de a szabványos WP-Cron nem hajtja végre óraműpontossággal. Az idő lejárta után szükség van egy kérésre, amely elindítja a feldolgozást. Ezért egy csendes intraneten az ütemezett közzététel később is megtörténhet. Diagnosztikánál egyértelműnek kell lennie az adminisztráció, a szerver és az UTC-ben tárolt adatok időzónájának.
Egy ütemezett feladatnak nem kell automatikusan minden intervallumban lefutnia, ha az előző még dolgozik. A feladat típusától függően használjon zárolást vagy várólistát, és állítson be maximális futási időt. Kritikus integrációnál határozza meg az elfogadható késleltetést. Egy olyan feladatnak, amely várhat egy órát, nincs szüksége ugyanarra az infrastruktúrára, mint a rendelésfeldolgozásnak.
Leltározza fel a hookokat, az időközöket és a felelősöket
Jelenítse meg az események listáját a hook nevével, a következő futtatással, az intervallummal és az argumentumokkal. Azonosítsa azt a bővítményt vagy egyedi kódot, amely az egyes hookokat regisztrálja. Gyanúsak a nem létező callbackkel, szokatlanul rövid intervallummal, nagy számú egyszeri tétellel vagy minden próbálkozással növekvő argumentumokkal rendelkező események. Ne távolítson el hookot pusztán az ismeretlen neve alapján.
A bővítmény deaktiválásakor ellenőrizze, hogy az ütemezés megfelelően törlődik-e. Egy elárvult esemény ismételten hibát idézhet elő. Egy egyedi bővítménynek aktiváláskor kell elvégeznie a regisztrációt, meg kell akadályoznia a duplikációkat, és deaktiváláskor el kell takarítania a saját hookjait. Tartsa nyilván, mely feladatok üzletileg kritikusak, és hová kerül az értesítés, ha hosszabb ideig nem futnak le.
- A hook és a callbackje
- Időköz és a következő időpont
- Argumentumok és védelem a duplikáció ellen
- Üzemeltetési felelős és prioritás
Diagnosztizálja a callback és a zárolás hibáját
Egy feladat lehet helyesen ütemezve, mégis meghiúsulhat PHP-hiba, időtúllépés, memóriahiány vagy API-válasz miatt. Kapcsolja be a biztonságos naplózást egy nyilvános kimeneten kívüli fájlba, és futtassa az adott hookot stagingen ugyanazokkal az argumentumokkal. A korrelációs azonosító segít egyetlen próbálkozást végigkövetni a soron és a külső rendszeren keresztül. A naplóba ne kerüljenek titkos adatok vagy teljes személyes adatok.
Az ideiglenes cron-zárolás megakadályozza a párhuzamos indítást, de összeomlás után látszólag elakadt állapot vagy éppen párhuzamos feldolgozás jöhet létre. A zárolás kézi eltávolítása előtt ellenőrizze annak idejét és tulajdonosát. A feladatnak biztonságosan kell kezelnie az ismétlést, hogy a beavatkozás ne hozzon létre második rendelést, e-mailt vagy számlát. A tartós hibának látható állapotba kell kerülnie.
Különböztesse meg a WP-Cront és az Action Schedulert
Az Action Schedulert számos e-commerce bővítmény használja sorok feldolgozására, és pending, complete, failed és canceled műveleteket tart nyilván. A nagyszámú befejezett rekord nem feltétlenül probléma, a várakozók növekvő kora viszont már igen. Ellenőrizze az adott művelet csoportját, hookját, próbálkozásainak számát és naplóját. A tömeges törlés nem oldja meg a továbbra is hibára futó callbacket.
A sort a szerverhez mért kötegekben dolgozza fel. A túl nagy párhuzamosság kimerítheti az adatbázis-kapcsolatokat, a túl kicsi pedig nem tud lépést tartani az új tételek beérkezésével. A befejezett rekordok megőrzését a diagnosztikai igények szerint állítsa be. Webhelymigráció során ellenőrizze, hogy a régi és az új környezet ne fusson egyszerre ugyanazokkal a külső rendszerekkel szemben.
- A legrégebbi várakozó művelet kora
- Ismétlődő hibaok
- Megfelelő kötegméret
- Csak egy aktív éles környezet
A rendszer-cront ellenőrzötten vezesse be
Felügyelt szerveren kikapcsolható a látogatásokkor történő futtatás, és a WordPress cron rendszeres időközönként a rendszerütemezővel hívható meg. A változtatás csökkenti a látogatottságtól való függést, de csak akkor, ha a szerveroldali feladat megfelelően be van állítva és monitorozva van. Először ellenőrizze az elérési utat, a felhasználót, a környezetet, az időtúllépést és a naplózást. Ne kapcsolja be meggondolatlanul mindkét módot.
Az átállás után hozzon létre egy szintetikus tesztesemény, és kövesse nyomon a végrehajtás idejét. Az értesítésnek jeleznie kell a kimaradt futást, a sor növekedését és a kritikus hook ismétlődő hibáját is. A runbook elmagyarázza a biztonságos kézi indítást és az eredmény ellenőrzését. Az az ütemező megbízható, amelynek hibáját a csapat hamarabb észleli, mint az ügyfél.
Gyakori kérdések
Miért nem jelent meg időben az ütemezett WordPress-cikk?
A WP-Cron várhat egy látogatásra, ki lehet kapcsolva, vagy az indításkor meghiúsulhat. Ellenőrizze az időzónát, az ütemezett eseményt, a cron kérést és a PHP naplót. Alacsony forgalmú weboldalon segíthet egy monitorozott rendszer-cron.
Törölhetem az összes sikertelen Action Scheduler feladatot?
Először derítse ki a hookot, a tulajdonost és az okot. A törlés eltávolítja a diagnosztikai nyomot, és a feladat újra létrejöhet. A javítás után döntse el, mely műveleteket biztonságos megismételni, törölni vagy az előzményekben megtartani.
Milyen gyakran futtassa a rendszer-cront a WordPresshez?
Az időköz a legrövidebb elvárt időből és a szerver kapacitásából indul ki. Nincs egyetlen érték, amely minden weboldalra érvényes. A kritikus folyamatok gyakoribb futtatást igényelhetnek, a szokásos takarítás jóval ritkábbat; az eredményt monitorozni kell.