Modul 7 · 7.3
Cron, Action Scheduler i probno okruženje (staging)
Modul 7: Vidljivost na tražilicama i hosting · Vrijeme čitanja: 10 minuta
Cilj učenja: Nakon ove lekcije moći ćete objasniti kako WooCommerce izvodi zadatke u pozadini, provjeriti zakazane akcije i popraviti ih kad nastanu problemi te postaviti probno okruženje (staging) za trgovinu tako da ni jedan stvarni kupac, plaćanje ili narudžba ne bude ugrožen.
Ključni pojmovi: WP-Cron, pravi cron, DISABLE_WP_CRON, Action Scheduler, zakazane akcije, na čekanju, završeno, neuspjelo, čišćenje, staging za trgovinu, testni način rada pružatelja usluga plaćanja, isključena e-pošta, webhooks, integracije, ne vraćati bazu podataka preko produkcije
Što se događa kad nitko ne gleda
Trgovina obavlja mnogo posla koji nije izravno vezan uz klik posjetitelja:
- otkazivanje neplaćenih narudžbi kad istekne vrijeme za zadržavanje zaliha (lekcija 3.4);
- slanje e-poruka nakon promjene statusa i webhookova prema integracijama;
- ažuriranje izvješća i statistika u administraciji;
- čišćenje isteklih sesija i privremenih podataka;
- provođenje rokova čuvanja iz postavki Računi i privatnost (lekcija 2.3);
- kod pretplata ili integracija s knjigovodstvom: naplata plaćanja i prosljeđivanje podataka.
Za to WordPress koristi WP-Cron, a WooCommerce povrh toga koristi Action Scheduler. Ako oni ne rade kako treba, to nećete odmah primijetiti. Primijetit ćete kad neplaćene narudžbe i dalje drže zalihe, izvješća ostanu prazna ili integracija kasni danima.
WP-Cron i pravi cron
Kako WP-Cron radi i zašto je pravi cron zadatak bolji, objašnjeno je u tečaju o WordPressu, lekcija 6.3: WP-Cron se pokreće pri posjetima, a ne prema satu, što je nepouzdano kad je posjetitelja malo i opterećujuće kad ih je mnogo. Rješenje: DISABLE_WP_CRON u wp-config.php i cron zadatak u Vašem upravljačkom panelu za hosting koji svakih nekoliko minuta pokreće wp-cron.php.
Za trgovinu to nije optimizacija, nego nužnost:
- Noću, kad je posjeta malo, neplaćene narudžbe ipak moraju biti otkazane na vrijeme.
- Tijekom velike akcije upravo ne želite da se zahtjevan pozadinski zadatak pokrene uz zahtjev za stranicom kupca koji želi platiti.
Kod WebOké takav zadatak izrađujete u DirectAdminu pod Cron Jobs (DA 15.1, KB 48), s /usr/local/bin/php kao putanjom do PHP-a; kod drugih pružatelja hostinga to funkcionira slično u njihovom zaslonu za cron. Za trgovinu odaberite interval od jedne do pet minuta, radije nego deset. Zadatak koji se pokreće svake minute, a nema što raditi, gotovo ništa ne troši.
Action Scheduler: red čekanja WooCommercea
Action Scheduler je red čekanja za pozadinske zadatke koji dolazi s WooCommerceom i koji koriste i mnogi drugi dodaci (pretplate, integracije s knjigovodstvom, e-mail marketing). Svaki zadatak je akcija s vremenom izvođenja i statusom. Red čekanja obrađuje se putem WP-Cron zadatka (action_scheduler_run_queue), pa i ovdje vrijedi: bez pouzdanog crona red čekanja zaostaje.
Sve vidite pod WooCommerce > Status > Zakazane akcije (Scheduled Actions). Postoje kartice prema statusu:
| Status | Značenje | Što učiniti |
|---|---|---|
| Na čekanju (Pending) | Još se treba izvesti | Ako ih ima na stotine s vremenom u prošlosti, red čekanja zaostaje: provjerite svoj cron |
| U tijeku (In-progress) | Upravo se izvodi | Ako akcija dugo visi, pogledajte zapisnik pokraj nje |
| Završeno (Complete) | Obavljeno | Ništa; automatski se čiste |
| Neuspjelo (Failed) | Javila se pogreška | Pročitajte poruku o pogrešci u stupcu Zapisnik; često je uzrok dodatak ili integracija koja nije dostupna |
| Otkazano (Canceled) | Namjerno nije izvedeno | Obično ništa |
Prema izvornom kodu, Action Scheduler standardno nakon mjesec dana čisti završene i otkazane akcije, a neuspjele nakon tri mjeseca. Ako tablica ipak naglo raste, vjerojatno se izvodi mnogo akcija koje stalno iznova ne uspijevaju ili se stalno iznova stvaraju; umjesto da samo ispraznite tablicu, otkrijte koji ih dodatak stvara (pomažu stupac Skupina i naziv hooka).
Primjer iz prakse kod Čajane Example: integracija s knjigovodstvenim programom nakon promjene lozinke stavljala je svaku narudžbu u red čekanja kao neuspjelu akciju. Nakon tjedan dana bilo je 400 neuspjelih akcija i nedostajalo je 60 računa (lekcija 5.6). Nakon popravka integracije administrator je mogao akcije ponovno pokrenuti jednu po jednu pomoću Run now.
Probno okruženje (staging) za trgovinu
Što je staging, kako ga izraditi i kako ga zaštititi (lozinka, noindex), objašnjeno je u tečaju o WordPressu, lekcija 8.3. Kod WebOké to možete učiniti kloniranjem u Installatronu (DA 13.7, KB 232) i mapom zaštićenom lozinkom (DA 15.9); drugi pružatelji hostinga imaju slične alate. Za trgovinu tome se pridružuje još nekoliko stvari, jer kopija trgovine sadrži stvarne podatke o kupcima i može izvoditi stvarne radnje.
Odmah nakon kloniranja, prije nego što učinite bilo što drugo:
- Pružatelj usluga plaćanja u testnom načinu rada, s testnim ključevima. Staging s live ključevima može primati stvarna plaćanja ili izvršavati povrate novca.
- E-pošta isključena ili preusmjerena. U suprotnom kopija šalje potvrde, podsjetnike i poruke o napuštenoj košarici stvarnim kupcima. Koristite dodatak koji zaustavlja svu e-poštu ili je šalje na jednu testnu adresu.
- Integracije i webhooks isključeni. Knjigovodstvo, sinkronizacija zaliha, naljepnice za dostavu, e-mail marketing: inače staging knjiži račune ili šalje pakete. Provjerite i WooCommerce > Postavke > Napredno > Webhooks te API ključeve.
- Pregledajte zakazane akcije. Red čekanja kopiran je zajedno sa stranicom. Akcije na čekanju (podsjetnik e-poštom, plaćanje pretplate) inače se na stagingu izvode još jednom.
- Ograničite osobne podatke. Ako Vam za testiranje nisu potrebni stvarni podaci o kupcima, izbrišite ih ili anonimizirajte na stagingu. Staging također podliježe GDPR-u (Općoj uredbi o zaštiti podataka) i često je slabije zaštićen (lekcija 5.5).
I najvažnije pravilo pri vraćanju: nikada ne vraćajte bazu podataka sa staginga preko trgovine koja radi. Između trenutka kloniranja i vraćanja pristigle su nove narudžbe, kupci, promjene zaliha i plaćanja; njih biste tada izgubili. Ponovite promjene na produkciji (sada znate da rade) ili sinkronizirajte samo datoteke. Ako to ipak morate učiniti s bazom podataka, učinite to samo dok je trgovina u načinu održavanja, odmah nakon svježe sigurnosne kopije i s alatom koji preskače narudžbe i kupce.
Testiranje ažuriranja na stagingu
Uobičajen postupak za veliko ažuriranje WooCommercea ili dodatka za plaćanje:
- Izradite svjež staging (klon produkcije) i podesite pet gore navedenih točaka.
- Ažurirajte na stagingu i pokrenite ažuriranje baze podataka ako WooCommerce to zatraži.
- Napravite testnu narudžbu u testnom načinu rada: plaćanje, neuspjelo plaćanje, povrat novca (lekcija 4.5).
- Provjerite u Zakazanim akcijama i u zapisniku pogrešaka ima li novih pogrešaka.
- Zatim ažurirajte produkciju u mirnom trenutku, sa sigurnosnom kopijom napravljenom neposredno prije toga (lekcija 6.2).
Sažetak
- WooCommerce obavlja mnogo posla u pozadini; to se izvodi putem WP-Crona i Action Schedulera.
- Za trgovinu uvijek koristite pravi cron zadatak (svake jedne do pet minuta) umjesto WP-Crona pri posjetima.
- Provjeravajte WooCommerce > Status > Zakazane akcije: mnogo zaostalih akcija na čekanju ili neuspjelih akcija znak je da cron ili neka integracija ne radi.
- Na stagingu: pružatelj usluga plaćanja u testnom načinu rada, e-pošta i integracije isključene, pregledane zakazane akcije, ograničeni osobni podaci.
- Nikada ne vraćajte bazu podataka sa staginga preko trgovine koja radi; ponovite promjene na produkciji.
Kviz
Zadatak
Zadatak A7.3: Je li Vaše probno okruženje (staging) zaštićeno? Ovo je ista provjera kao zadatak A8.3 iz tečaja o WordPressu. Najprije Vam je potreban dokaz vlasništva nad domenom (TXT zapis _weboke-cursus.<domein> ili datoteka /.well-known/weboke-cursus-<code>.txt s kodom koji dobijete). Zatim unesite adresu svoje trgovine i adresu svojeg staginga (host pod istom domenom). Program dohvaća početnu stranicu staginga, bez podataka za prijavu, i početnu stranicu produkcije. Zeleno ako staging traži lozinku (401) ili ako ima noindex i koristi vlastitu adresu (REST ulaz upućuje na host staginga), dok produkcija nema noindex. Narančasto ako staging ima noindex, ali nema lozinku, ili nema valjan certifikat. Crveno ako je staging otvoren i može se indeksirati, ako staging još upućuje na adresu produkcije ili ako produkcija greškom ima noindex.
Pitanja za Vas (ne provjeravaju se): je li pružatelj usluga plaćanja na Vašem stagingu u testnom načinu rada? Je li e-pošta isključena ili preusmjerena? Jesu li integracije i webhooks isključeni? Koliko akcija na čekanju i neuspjelih akcija trenutačno postoji u Zakazanim akcijama na produkciji?
Daljnje čitanje
Ovi članci opisuju korake u panelima tvrtke WebOké; u drugim panelima postupak je sličan.
- DirectAdmin priručnik 15.1: Cron Jobs: automatsko pokretanje zadataka
- Izrada cronjoba ili zadatka (i što učiniti ako se ne pokreće)
- Izrada WordPress staging okruženja
- DirectAdmin priručnik 13.7: Kloniranje i izrada testnog okruženja (staging)
- DirectAdmin priručnik 15.9: Mape zaštićene lozinkom
- Besplatan WordPress tečaj 8.3: Testno okruženje (staging): sigurno testiranje
- Besplatan WordPress tečaj 6.3: Slike, PHP i druge dobitke u brzini
- Action Scheduler (actionscheduler.org, na engleskom): https://actionscheduler.org/
- WooCommerce Status i Planirane radnje: otkrivanje problema
- Testno okruženje (staging) za Vašu web trgovinu
