Háttérfeldolgozás (aszinkron) hibaelhárítása
Mire használ a Gravity Forms háttérfeldolgozást, hogyan ellenőrizheted, hogy működik-e, mit jelentenek a naplóbejegyzések és a gyakori hibakódok, és mit tehetsz ellenük.
A háttérfeldolgozás külön kérésben dolgozza fel a feladatokat, így nem blokkolja az éppen futó műveletet, például az űrlap beküldését.
Mire használja a Gravity Forms?
Szekció neve “Mire használja a Gravity Forms?”- Adatbázis-frissítések.
- Telemetria.
- Feedfeldolgozás azokban a kiegészítőkben, amelyek a feed-kiegészítő keretrendszerre épülnek, és jelzik, hogy támogatják az aszinkron feedfeldolgozást.
- Értesítések. Ezt az Űrlapok → Beállítások oldalon a Háttérértesítések kapcsolóval kapcsolhatod be és ki. Új telepítésnél alapból be van kapcsolva.
- Egyes külső kiegészítők, például a Gravity PDF, a PDF-et tartalmazó értesítéseket is a háttérben küldhetik, így a beküldés nem késik.
Működik a háttérfeldolgozás az oldalamon?
Szekció neve “Működik a háttérfeldolgozás az oldalamon?”Ehhez az oldalnak POST kérést kell tudnia küldeni a saját Admin Ajax címére a WordPress HTTP API-jával.
Oldal állapota
Szekció neve “Oldal állapota”Az Eszközök → Webhely állapota oldalon a sikeres tesztek között legyen ott: az ütemezett események futnak, a HTTP-kérések a várt módon működnek, az oldal végre tud hajtani loopback-kéréseket. Ha bármelyik hiányzik, a háttérfeladatok feldolgozása is gondot okozhat.
Rendszerállapot
Szekció neve “Rendszerállapot”Az Űrlapok → Rendszerállapot oldalon a WordPress-környezet részben a Háttérfeladatok soránál Igen értéknek kell állnia. Hiba esetén ugyanitt látod a hibaüzenetet vagy a válasz állapotkódját. A rendszerállapot oldalról a rendszerállapot fejezetben olvashatsz.
Feldolgozódnak a feladatok?
Szekció neve “Feldolgozódnak a feladatok?”- Kapcsold be a naplózást az Űrlapok → Beállítások oldalon, és mentsd a beállításokat.
- A naplózás oldalán kapcsold be a naplózást a Gravity Forms magjához és az összes kiegészítőhöz.
- Indítsd el a feldolgozást: küldd be az űrlapot, vagy futtasd az adatbázis-frissítést a Rendszerállapot oldalról.
- Nézd meg a naplókat.
Példa naplóbejegyzések a mag naplójában
Szekció neve “Példa naplóbejegyzések a mag naplójában”A [processor_slug] lehet gf_upgrader, gf_feed_processor, gf_notifications_processor, gf_[kiegészítő rövid neve]_feed_processor vagy külső kiegészítő azonosítója (például gravitypdf). Nem minden bejegyzés jelenik meg minden beküldésnél.
Naplóbejegyzés (GF_Background_Process::…) |
Jelentés |
|---|---|
dispatch_on_shutdown(): Aborting. Queue is empty for … |
A sor üres, nincs mit indítani. |
dispatch_on_shutdown(): Dispatch delayed until shutdown for … |
Az indítás az oldal leállásáig késik. |
save(): Saving batch [id]. Tasks: [db]. |
Egy köteg mentése a sorba. |
dispatch(): Running for … |
A feldolgozás indítása. |
schedule_event(): Scheduling cron event for … |
Tartalék cron-esemény ütemezése. |
dispatch(): Unable to dispatch tasks to Admin Ajax: … |
Az Admin Ajax kérés nem sikerült (lásd a hibatáblázatot). |
maybe_handle(): Running for … |
A feldolgozást az Admin Ajax indította. |
handle_cron_healthcheck(): Running for … |
A feldolgozást a cron indította. |
handle(): Running via [módszer] request for … |
A feldolgozás elindult. |
handle(): Processing batch [id]; Tasks: [db]. |
Egy köteg feldolgozása. |
update(): Batch [id] updated. Tasks remaining: [db]. |
A köteg frissítve, ennyi feladat maradt. |
handle(): Processing task [n]. Attempt number: [m]. |
A feladat feldolgozása és a próbálkozás száma. |
GF_Feed_Processor::task(): Aborting. Add-on ([slug]) not found … |
A feedhez tartozó kiegészítő nem található. |
GF_Feed_Processor::task(): Aborting. Error occurred during processing of batch … |
Hiba a köteg feldolgozásakor, a részleteket a bejegyzés tartalmazza. |
handle(): Removing task [n] from batch. |
A feladat kikerült a kötegből. |
handle(): Batch completed for … |
A köteg elkészült. |
delete(): Deleting batch [id]. |
A köteg törlése. |
handle(): All batches completed for … |
Minden köteg kész. |
clear_scheduled_event(): Clearing cron event for … |
A tartalék cron-esemény törlése. |
Példa naplóbejegyzések egy kiegészítő naplójában
Szekció neve “Példa naplóbejegyzések egy kiegészítő naplójában”A GF_Background_Process bejegyzései a kiegészítő naplójában csak a Gravity Forms 2.9.25-ös vagy újabb verziójától jelennek meg. A fenti bejegyzéseken kívül ezeket látod:
| Naplóbejegyzés | Jelentés |
|---|---|
GFFeedAddOn::maybe_process_feed(): Adding feed (#[id] - [név]) to the processing queue for entry #[id]. |
A feed bekerült a feldolgozási sorba. |
GF_Feed_Processor::task(): Preparing to process feed … |
A feed feldolgozásának előkészítése. |
GF_Feed_Processor::task(): Aborting. Entry #[id] not found for feed … |
A bejegyzés nem található. |
GF_Feed_Processor::can_process_feed(): … has already been processed … Reprocessing is NOT supported / NOT allowed / IS allowed. |
A feedet már feldolgozták ehhez a bejegyzéshez; az újrafeldolgozás nem támogatott, nem engedélyezett vagy engedélyezett. |
GF_Feed_Processor::task(): Aborting. Feed … attempted too many times … |
A feedet túl sokszor próbálták; a bejegyzés mutatja a próbálkozások számát és a korlátot. |
GF_Feed_Processor::task(): Starting to process feed … |
A feed feldolgozása elindult. |
GF_Feed_Processor::task(): Aborting. Error occurred during processing of feed … |
Hiba a feed feldolgozásakor. |
GF_Feed_Processor::task(): Completed processing of feed … |
A feed feldolgozása kész. |
Adatbázis-frissítés naplói
Szekció neve “Adatbázis-frissítés naplói”| Naplóbejegyzés | Jelentés |
|---|---|
GF_Background_Upgrader::task(): Running callback: … |
A frissítési lépés fut. |
… Callback needs another run: … |
A lépést még egyszer futtatni kell. |
… Finished callback: … |
A lépés kész. |
… Could not find callback: … |
A lépés nem található. |
Gyakori hibák
Szekció neve “Gyakori hibák”A legtöbb hiba a kiszolgáló beállításaira vezethető vissza, ezért gyakran a tárhelyszolgáltatóhoz kell fordulnod.
| Hiba | Mit jelent és mit tegyél |
|---|---|
| cURL error 6: Could not resolve host | A domain DNS-beállításával vagy a kiszolgálóval van gond. Fordulj a tárhelyszolgáltatóhoz. |
| cURL error 7: Failed to connect … port 443: Connection refused | Kiszolgálóoldali probléma okozhatja; a tárhelynek frissítenie kell a csomagokat (PHP, cURL, OpenSSL). Cloudflare használatakor annak SSL-beállítása is okozhatja; néhány esetben a Cloudflare átmeneti kikapcsolása megoldotta, tartós megoldáshoz a Cloudflare támogatásához kell fordulni. |
| cURL error 28: Operation timed out | Időtúllépés. A megoldáshoz keress segítséget a „cURL error 28 in WordPress” témában. |
| cURL error 35: SSL handshake failure | Valami módosítja a kérések URL-jét (lásd a 404-es hibát). |
| Response code: 401 | Az oldalon alapszintű hitelesítés van. Lásd lent. |
| Response code: 403 | Biztonsági szolgáltatás, bővítmény vagy kiszolgálómodul blokkolja az admin-ajax.php elérését. Lásd lent. |
| Response code: 404 | Valami módosítja a kérések URL-jét. Lásd lent. |
401-es válaszkód
Szekció neve “401-es válaszkód”Ha az oldalon alapszintű hitelesítés van, az http_request_args szűrővel add hozzá az Authorization fejlécet az Ajax-kéréshez:
add_filter( 'http_request_args', 'http_request_args_basic_auth', 10, 2 );function http_request_args_basic_auth( $args, $url ) { if ( strpos( $url, admin_url( 'admin-ajax.php' ) ) === 0 ) { $args['headers']['Authorization'] = 'Basic ' . base64_encode( USERNAME . ':' . PASSWORD ); } return $args;}A példa feltételezi, hogy a USERNAME és a PASSWORD állandót máshol (például a wp-config.php fájlban) definiáltad. Ha nem, írd be közvetlenül az értékeket.
403-as válaszkód
Szekció neve “403-as válaszkód”Gyakori okok:
- egy biztonsági funkciójú bővítmény vagy a témába tett egyedi függvény blokkolja a
wp-adminvagy azadmin-ajax.phpelérését; .htaccessszabályok blokkolják, amelyeket gyakran biztonsági bővítmények tettek be, és a bővítmény kikapcsolása után is megmaradtak;- kiszolgálóoldali biztonsági modul vagy tűzfal (például ModSecurity), illetve külső szolgáltatás (például Cloudflare) fogja meg a kérést.
Segíthet a kézi ütközésvizsgálat, ha a hibát nem .htaccess szabály okozza (lásd az ütközésvizsgálat fejezetet). Ha az sem hoz eredményt, kérj segítséget a tárhelyszolgáltatótól.
404-es válaszkód
Szekció neve “404-es válaszkód”Ellenőrizd a következőket:
- a Beállítások → Általános oldalon a Webhely címe (URL) helyes-e;
- a
wp-config.phpfájlban aWP_SITEURLnem rossz címre mutat-e; - az adatbázis
wp_optionstáblájában asiteurlértéke helyes-e; - végezz kézi ütközésvizsgálatot.
Ha ezek után is 404-es hiba látszik a rendszerállapot oldalon, kérj segítséget a tárhelytől.
Tartalék cron-feladat
Szekció neve “Tartalék cron-feladat”Közvetlenül azelőtt, hogy a háttérfeldolgozó elküldi az Ajax-kérést, tartalék cron-feladatot is ütemez. Ezt csak akkor használja a rendszer, ha az Ajax-kérés nem indítja el a feldolgozást, vagy időtúllépés miatt a sor kiürülése előtt megszakad. Hogy az oldalad támogatja-e a cron-feladatokat, az ütemezett események fejezetben ellenőrizheted.
Szüneteltetés és folytatás
Szekció neve “Szüneteltetés és folytatás”Ha egy feed-kiegészítő hibába ütközik a feldolgozás közben, a feladatsor átmenetileg szünetel. A feldolgozásnak a tartalék cron-esemény indulásakor magától folytatódnia kell.
Készült: