{"id":3077,"date":"2026-07-18T15:31:43","date_gmt":"2026-07-18T15:31:43","guid":{"rendered":"https:\/\/www.serverspan.com\/blog\/"},"modified":"2026-07-18T15:31:49","modified_gmt":"2026-07-18T15:31:49","slug":"backlog-woocommerce-action-scheduler-cpu-joburi-ratate","status":"publish","type":"post","link":"https:\/\/www.serverspan.ro\/blog\/backlog-woocommerce-action-scheduler-cpu-joburi-ratate\/","title":{"rendered":"Backlog WooCommerce Action Scheduler: CPU \u0219i joburi ratate"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>Un backlog WooCommerce Action Scheduler apare atunci c\u00e2nd ac\u021biunile restante sunt create mai repede dec\u00e2t le poate finaliza serverul.<\/strong> Nu evalua coada numai dup\u0103 num\u0103rul total de ac\u021biuni cu status pending, deoarece joburile programate pentru viitor sunt normale. Num\u0103r\u0103 ac\u021biunile care \u0219i-au dep\u0103\u0219it ora programat\u0103, identific\u0103 hook-ul dominant, verific\u0103 func\u021bionarea WP-Cron \u0219i cite\u0219te logurile joburilor e\u0219uate. Proceseaz\u0103 restan\u021bele numai \u00een loturi controlate. Rularea simultan\u0103 a mii de ac\u021biuni poate transforma backlogul \u00eentr-un v\u00e2rf CPU, blocaje \u00een baza de date sau indisponibilitatea magazinului.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Scris de echipa tehnic\u0103 ServerSpan.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Un num\u0103r mare de ac\u021biuni pending nu \u00eenseamn\u0103 automat backlog<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Action Scheduler este coada de joburi \u00een fundal folosit\u0103 de WooCommerce \u0219i de numeroase extensii. Poate procesa webhookuri, mesaje email, pl\u0103\u021bi recurente, sincroniz\u0103ri de inventar, importuri analitice, modific\u0103ri ale comenzilor \u0219i sarcini de mentenan\u021b\u0103.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O ac\u021biune programat\u0103 pentru s\u0103pt\u0103m\u00e2na viitoare trebuie s\u0103 r\u0103m\u00e2n\u0103 pending. O re\u00eennoire programat\u0103 pentru m\u00e2ine nu este \u00eent\u00e2rziat\u0103 ast\u0103zi. Coada devine backlog atunci c\u00e2nd ac\u021biunile r\u0103m\u00e2n neexecutate dup\u0103 ora programat\u0103, iar cea mai veche restan\u021b\u0103 se \u00eendep\u0103rteaz\u0103 tot mai mult \u00een trecut.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>M\u0103sur\u0103toare<\/th><th>Ce arat\u0103<\/th><th>Model s\u0103n\u0103tos<\/th><th>Model problematic<\/th><\/tr><\/thead><tbody><tr><td>Total ac\u021biuni pending<\/td><td>Include at\u00e2t joburile viitoare, c\u00e2t \u0219i pe cele restante<\/td><td>Poate fi ridicat pe magazine cu abonamente sau sincroniz\u0103ri programate<\/td><td>Nu dovede\u0219te singur existen\u021ba unui backlog<\/td><\/tr><tr><td>Ac\u021biuni pending restante<\/td><td>Joburi care trebuiau deja executate<\/td><td>Num\u0103r mic care scade la verificarea urm\u0103toare<\/td><td>Num\u0103rul cre\u0219te \u00eentre dou\u0103 m\u0103sur\u0103tori<\/td><\/tr><tr><td>Cea mai veche ac\u021biune restant\u0103<\/td><td>\u00cent\u00e2rzierea maxim\u0103 a cozii<\/td><td>Dat\u0103 recent\u0103 care avanseaz\u0103 spre prezent<\/td><td>Ac\u021biune veche de ore sau zile<\/td><\/tr><tr><td>Ac\u021biuni grupate dup\u0103 hook<\/td><td>Componenta care produce workloadul<\/td><td>Mai multe hook-uri cu volume controlabile<\/td><td>Un singur hook domin\u0103 aproape toat\u0103 coada<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Compar\u0103 rata de creare cu rata de finalizare. Dac\u0103 un plugin creeaz\u0103 300 de ac\u021biuni pe or\u0103, iar contul de hosting finalizeaz\u0103 numai 200, backlogul cre\u0219te cu 100 de ac\u021biuni \u00een fiecare or\u0103. Un batch mai mare poate reduce temporar coada, dar nu repar\u0103 un workload care dep\u0103\u0219e\u0219te permanent capacitatea disponibil\u0103.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Serviciul ServerSpan de <a href=\"https:\/\/www.serverspan.ro\/webhosting\">g\u0103zduire web DirectAdmin<\/a> include administrarea cronjoburilor. Existen\u021ba cronului nu \u00eenlocuie\u0219te identificarea hook-ului \u0219i a limitei care \u00eempiedic\u0103 procesarea.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00cencepe cu ecranul Ac\u021biuni programate din WooCommerce<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Deschide <strong>WooCommerce \u2192 Stare \u2192 Ac\u021biuni programate<\/strong>. Aceea\u0219i interfa\u021b\u0103 poate fi disponibil\u0103 \u0219i \u00een <strong>Unelte \u2192 Ac\u021biuni programate<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a rel=\"nofollow noopener noreferrer\" href=\"https:\/\/actionscheduler.org\/admin\/\">Interfa\u021ba oficial\u0103 Action Scheduler<\/a> permite filtrarea ac\u021biunilor dup\u0103 status, sortarea dup\u0103 hook sau data programat\u0103, rularea unei ac\u021biuni pending \u0219i consultarea jurnalului unei ac\u021biuni e\u0219uate.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Noteaz\u0103 urm\u0103toarele date \u00eenainte s\u0103 rulezi, anulezi sau \u0219tergi ceva:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Num\u0103rul ac\u021biunilor pending care \u0219i-au dep\u0103\u0219it ora programat\u0103.<\/li>\n\n\n\n<li>Data \u0219i ora celei mai vechi ac\u021biuni restante.<\/li>\n\n\n\n<li>Hook-urile care apar cel mai frecvent.<\/li>\n\n\n\n<li>Grupul sau pluginul asociat acelor hook-uri.<\/li>\n\n\n\n<li>Ultimul mesaj de eroare pentru ac\u021biunile failed.<\/li>\n\n\n\n<li>Ac\u021biunile care r\u0103m\u00e2n neobi\u0219nuit de mult \u00een status in-progress.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Deschide mai multe ac\u021biuni e\u0219uate \u0219i cite\u0219te \u00eentregul log. O excep\u021bie repetat\u0103, un timeout HTTP, un API indisponibil sau o eroare de baz\u0103 de date identific\u0103 callback-ul care trebuie reparat. Rularea repetat\u0103 a aceleia\u0219i ac\u021biuni f\u0103r\u0103 corectarea dependen\u021bei produce numai consum suplimentar \u0219i alte loguri de eroare.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Action Scheduler poate marca o ac\u021biune drept failed dac\u0103 ruleaz\u0103 mai mult de cinci minute. Dac\u0103 execu\u021bia se termin\u0103 ulterior, statusul poate deveni complete. Verific\u0103 toate intr\u0103rile din log \u00eenainte s\u0103 presupui c\u0103 jobul trebuie relansat.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">M\u0103soar\u0103 restan\u021bele cu WP-CLI sau direct din baza de date<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">WP-CLI ofer\u0103 rezultate repetabile, u\u0219or de comparat \u00eenainte \u0219i dup\u0103 interven\u021bie. \u00cencepe cu verific\u0103ri read-only:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>wp action-scheduler version\nwp action-scheduler datastore\nwp action-scheduler status<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Un rezultat s\u0103n\u0103tos confirm\u0103 existen\u021ba comenzilor Action Scheduler \u0219i identific\u0103 datastore-ul activ. O comand\u0103 lips\u0103 poate \u00eensemna c\u0103 site-ul \u00eencarc\u0103 o versiune veche, pluginul relevant este inactiv sau bootstrapul WordPress pentru WP-CLI a e\u0219uat.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pentru un site care folose\u0219te tabelele dedicate Action Scheduler, afi\u0219eaz\u0103 ac\u021biunile grupate dup\u0103 status:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>prefix=\"$(wp db prefix)\"\n\nwp db query \"\nSELECT status, COUNT(*) AS actions\nFROM ${prefix}actionscheduler_actions\nGROUP BY status\nORDER BY actions DESC;\n\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Rezultatul trebuie s\u0103 separe ac\u021biunile pending, complete, failed \u0219i in-progress. Un num\u0103r mare de ac\u021biuni complete reprezint\u0103 \u00een principal o problem\u0103 de reten\u021bie \u0219i dimensiune a bazei de date. Ac\u021biunile pending restante reprezint\u0103 activitatea \u00eent\u00e2rziat\u0103.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Identific\u0103 hook-urile care produc restan\u021bele:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>wp db query \"\nSELECT\n    hook,\n    COUNT(*) AS overdue,\n    MIN(scheduled_date_gmt) AS oldest_due_gmt\nFROM ${prefix}actionscheduler_actions\nWHERE status = 'pending'\n  AND scheduled_date_gmt &lt;= UTC_TIMESTAMP()\nGROUP BY hook\nORDER BY overdue DESC\nLIMIT 20;\n\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Un rezultat s\u0103n\u0103tos con\u021bine pu\u021bine ac\u021biuni restante \u0219i date recente. Un rezultat problematic con\u021bine sute sau mii de ac\u021biuni pentru acela\u0219i hook, cu cea mai veche dat\u0103 aflat\u0103 cu multe ore sau zile \u00een trecut.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Repet\u0103 interogarea dup\u0103 zece minute f\u0103r\u0103 s\u0103 modifici site-ul. Dac\u0103 num\u0103rul scade, runnerul func\u021bioneaz\u0103 \u0219i \u00eencearc\u0103 s\u0103 recupereze \u00eent\u00e2rzierea. Dac\u0103 num\u0103rul r\u0103m\u00e2ne fix, pornirea cozii poate fi blocat\u0103. Dac\u0103 num\u0103rul cre\u0219te, ac\u021biunile sunt create mai repede dec\u00e2t sunt finalizate.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O eroare care spune c\u0103 tabela nu exist\u0103 poate indica un prefix diferit, un datastore vechi sau o migrare incomplet\u0103. Confirm\u0103 rezultatul comenzii <code>wp action-scheduler datastore<\/code>. Nu crea manual tabelele \u00eenainte de stabilirea cauzei.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Un WP-Cron defect las\u0103 ac\u021biunile WooCommerce \u00een a\u0219teptare<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Runnerul implicit Action Scheduler depinde de WP-Cron \u0219i de cereri loopback asincrone. Un magazin cu trafic redus poate porni WP-Cron neregulat. Autentificarea HTTP, un firewall, o problem\u0103 DNS sau un plugin de securitate poate bloca loopback-ul chiar dac\u0103 paginile magazinului se \u00eencarc\u0103 normal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Testeaz\u0103 mecanismul de pornire:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>wp cron test\n\nwp cron event list \\\n  --fields=hook,next_run_gmt,next_run_relative,recurrence \\\n  --format=table<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Un test s\u0103n\u0103tos raporteaz\u0103 c\u0103 pornirea WP-Cron func\u021bioneaz\u0103. Un r\u0103spuns HTTP diferit de 200 indic\u0103 o problem\u0103 la cererea loopback. Mesajul c\u0103 <code>DISABLE_WP_CRON<\/code> este activ nu reprezint\u0103 automat o eroare atunci c\u00e2nd un cron real ruleaz\u0103 deja din panoul de hosting.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Verific\u0103 set\u0103rile relevante din <code>wp-config.php<\/code> f\u0103r\u0103 s\u0103 modifici fi\u0219ierul:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>grep -nE \\\n  'DISABLE_WP_CRON|ALTERNATE_WP_CRON|WP_CRON_LOCK_TIMEOUT' \\\n  wp-config.php<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Lipsa outputului \u00eenseamn\u0103 c\u0103 se folosesc valorile WordPress implicite. Dac\u0103 <code>DISABLE_WP_CRON<\/code> este true, confirm\u0103 existen\u021ba \u0219i execu\u021bia jobului extern. Dezactivarea cronului intern \u00eenainte de configurarea \u00eenlocuitorului opre\u0219te ac\u021biunile WooCommerce, articolele programate \u0219i alte joburi WordPress.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Backlogul \u0219i v\u00e2rful CPU pot proveni din acela\u0219i workload<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">R\u00e2ndurile inactive din coad\u0103 nu consum\u0103 singure mult CPU. \u00cenc\u0103rcarea apare c\u00e2nd callback-urile sunt executate, interogheaz\u0103 baza de date, trimit mesaje, proceseaz\u0103 comenzi, contacteaz\u0103 servicii externe sau creeaz\u0103 alte ac\u021biuni.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Runnerul web implicit revendic\u0103 un lot de 25 de ac\u021biuni. Continu\u0103 procesarea p\u00e2n\u0103 c\u00e2nd se apropie de 90% din memoria disponibil\u0103 sau de limita de aproximativ 30 de secunde, apoi poate ini\u021bia o alt\u0103 cerere asincron\u0103 dac\u0103 mai exist\u0103 activitate restant\u0103.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><thead><tr><th>Model observat<\/th><th>Interpretare probabil\u0103<\/th><th>Urm\u0103toarea verificare<\/th><\/tr><\/thead><tbody><tr><td>CPU cre\u0219te periodic, iar restan\u021bele scad<\/td><td>Runnerul proceseaz\u0103 un backlog existent<\/td><td>Identific\u0103 hook-ul dominant \u0219i m\u0103soar\u0103 rata de finalizare<\/td><\/tr><tr><td>CPU cre\u0219te, dar num\u0103rul restant continu\u0103 s\u0103 urce<\/td><td>Produc\u0103torul creeaz\u0103 activitate mai repede dec\u00e2t poate fi executat\u0103<\/td><td>Verific\u0103 pluginul sau integrarea care genereaz\u0103 hook-ul<\/td><\/tr><tr><td>Nu exist\u0103 activitate CPU, iar restan\u021bele r\u0103m\u00e2n fixe<\/td><td>Cronul sau pornirea cozii poate fi defect\u0103<\/td><td>Ruleaz\u0103 <code>wp cron test<\/code> \u0219i verific\u0103 loopback-ul<\/td><\/tr><tr><td>Aceea\u0219i ac\u021biune e\u0219ueaz\u0103 \u00een mod repetat<\/td><td>Callback-ul are o dependen\u021b\u0103 nerezolvat\u0103<\/td><td>Cite\u0219te logul ac\u021biunii \u0219i logurile WooCommerce<\/td><\/tr><tr><td>Magazinul devine lent \u00een timpul recuper\u0103rii<\/td><td>Procesarea concureaz\u0103 cu checkoutul pentru PHP \u0219i baza de date<\/td><td>Opre\u0219te recuperarea \u0219i continu\u0103 \u00een loturi mai mici<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Nu m\u0103ri num\u0103rul de cozi concurente ca prim\u0103 interven\u021bie pe shared hosting. <a rel=\"nofollow noopener noreferrer\" href=\"https:\/\/actionscheduler.org\/perf\/\">Documenta\u021bia de performan\u021b\u0103 Action Scheduler<\/a> avertizeaz\u0103 c\u0103 mai multe cozi asincrone pot cre\u0219te puternic \u00eenc\u0103rcarea \u0219i pot indisponibiliza site-ul.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Logurile ac\u021biunilor e\u0219uate identific\u0103 exact callback-ul defect<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Afi\u0219eaz\u0103 ultimele ac\u021biuni failed f\u0103r\u0103 s\u0103 le modifici:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>wp db query \"\nSELECT\n    action_id,\n    hook,\n    attempts,\n    scheduled_date_gmt,\n    last_attempt_gmt\nFROM ${prefix}actionscheduler_actions\nWHERE status = 'failed'\nORDER BY last_attempt_gmt DESC\nLIMIT 20;\n\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Alege apoi un ID numeric \u0219i consult\u0103 istoricul s\u0103u:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>action_id=123\n\nwp db query \"\nSELECT log_date_gmt, message\nFROM ${prefix}actionscheduler_logs\nWHERE action_id = ${action_id}\nORDER BY log_date_gmt;\n\"<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u00cenlocuie\u0219te <code>123<\/code> cu un ID returnat de interogarea anterioar\u0103. Logul trebuie s\u0103 arate c\u00e2nd ac\u021biunea a fost creat\u0103, pornit\u0103 \u0219i oprit\u0103. Mesajele pot identifica un callback lips\u0103, un fatal error PHP, un timeout de re\u021bea sau o excep\u021bie produs\u0103 de plugin.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Consult\u0103 \u0219i <a rel=\"nofollow noopener noreferrer\" href=\"https:\/\/developer.woocommerce.com\/docs\/best-practices\/data-management\/logging\/\">logurile WooCommerce<\/a> din <strong>WooCommerce \u2192 Stare \u2192 Loguri<\/strong>. Caut\u0103 \u00een jurul aceluia\u0219i timestamp GMT \u0219i filtreaz\u0103 dup\u0103 pluginul indicat de hook. Verific\u0103 \u0219i logul PHP disponibil \u00een panoul de hosting.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hook-ul dominant este mai util dec\u00e2t eticheta generic\u0103 \u201ebacklog WooCommerce\u201d. O ac\u021biune de plat\u0103, una de email, un import analytics \u0219i o sincronizare de inventar au dependen\u021be \u0219i riscuri diferite.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Proceseaz\u0103 coada \u00een loturi mici dup\u0103 repararea cauzei<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ac\u021biunile pending pot modifica comenzi, trimite notific\u0103ri, apela webhookuri sau ini\u021bia opera\u021biuni de plat\u0103, \u00een func\u021bie de extensiile instalate. Creeaz\u0103 un backup actual al bazei de date \u0219i identific\u0103 hook-urile dominante \u00eenainte de procesarea manual\u0103.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pentru cozi mari, <a rel=\"nofollow noopener noreferrer\" href=\"https:\/\/actionscheduler.org\/wp-cli\/\">Action Scheduler recomand\u0103 WP-CLI<\/a>, deoarece comenzile din shell sunt mai pu\u021bin expuse timeouturilor unei cereri web. \u00cencepe cu un singur lot mic:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>wp action-scheduler run \\\n  --batch-size=20 \\\n  --batches=1<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">O execu\u021bie s\u0103n\u0103toas\u0103 raporteaz\u0103 ac\u021biunile finalizate \u0219i returneaz\u0103 controlul c\u0103tre shell. Verific\u0103 din nou num\u0103rul restan\u021belor, utilizarea CPU \u0219i ac\u021biunile e\u0219uate \u00eenainte de urm\u0103torul lot.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Opre\u0219te procesarea dac\u0103 apar erori noi, contul atinge limitele sau magazinul devine indisponibil. Repar\u0103 mai \u00eent\u00e2i callback-ul sau dependen\u021ba.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nu folosi op\u021biunea <code>--force<\/code> \u00een etapa ini\u021bial\u0103. Aceasta ignor\u0103 protec\u021bia privind concuren\u021ba. Nu separa hook-urile de pl\u0103\u021bi, expir\u0103ri \u0219i schimb\u0103ri de status \u00een runneri independen\u021bi dec\u00e2t dac\u0103 documenta\u021bia extensiei confirm\u0103 c\u0103 ordinea nu este important\u0103.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nu \u0219terge \u00een mas\u0103 ac\u021biunile pending numai pentru a reduce contorul. Eliminarea cozii poate \u00eensemna re\u00eennoiri ratate, webhookuri netrimise, importuri incomplete sau joburi de mentenan\u021b\u0103 omise. Anuleaz\u0103 ac\u021biuni numai dup\u0103 identificarea pluginului care le-a creat \u0219i confirmarea c\u0103 activitatea nu mai este necesar\u0103.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Un cron real previne \u00eent\u00e2rzierile dependente de trafic<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Un cron de sistem este util atunci c\u00e2nd magazinul are trafic neregulat sau joburile trebuie s\u0103 ruleze la intervale previzibile. Configureaz\u0103 \u0219i testeaz\u0103 comanda extern\u0103 \u00eenainte de dezactivarea cronului pornit la accesarea paginilor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O comand\u0103 tipic\u0103 pentru DirectAdmin este:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>*\/5 * * * * \/usr\/bin\/php -q \\\n  \/home\/USER\/domains\/example.com\/public_html\/wp-cron.php \\\n  &gt;\/dev\/null 2&gt;&amp;1<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u00cenlocuie\u0219te utilizatorul, domeniul, calea \u0219i executabilul PHP cu valorile contului. Ruleaz\u0103 manual comanda o dat\u0103 \u00eenainte de programare. O execu\u021bie corect\u0103 nu afi\u0219eaz\u0103 de obicei nimic \u0219i returneaz\u0103 codul zero. Erorile PHP sau calea incorect\u0103 trebuie remediate \u00eenainte de dezactivarea WP-Cron.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dup\u0103 verificarea schedulerului extern, opre\u0219te pornirea cronului la accesarea paginilor:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>define( 'DISABLE_WP_CRON', true );<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Adaug\u0103 setarea \u00een <code>wp-config.php<\/code> \u00eenaintea liniei care opre\u0219te editarea. P\u0103streaz\u0103 un backup al fi\u0219ierului. Eliminarea cronului extern \u00een timp ce aceast\u0103 constant\u0103 r\u0103m\u00e2ne activ\u0103 va opri joburile automate WordPress.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Shared hosting r\u0103m\u00e2ne potrivit c\u00e2nd backlogul este temporar<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Un backlog temporar dup\u0103 un import mare, o actualizare de plugin sau o sincronizare unic\u0103 nu impune automat migrarea la VPS. Shared hosting r\u0103m\u00e2ne potrivit atunci c\u00e2nd coada se gole\u0219te dup\u0103 repararea cauzei, checkoutul r\u0103m\u00e2ne rapid, iar joburile recurente se finalizeaz\u0103 \u00een intervalul necesar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Limita mediului shared a fost atins\u0103 atunci c\u00e2nd restan\u021bele cresc \u00een timpul oper\u0103rii normale, callback-urile necesit\u0103 procese CLI de lung\u0103 durat\u0103, runnerul ocup\u0103 repetat to\u021bi workerii PHP sau contul nu poate executa cronul suficient de des.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Compara\u021bia ServerSpan dintre <a href=\"https:\/\/www.serverspan.ro\/blog\/shared-hosting-vs-vps-de-ce-ai-nevoie-cu-adevarat-in-2026\/\">shared hosting \u0219i VPS<\/a> explic\u0103 diferen\u021ba dintre administrarea inclus\u0103 \u0219i controlul asupra resurselor. Ghidul despre <a href=\"https:\/\/www.serverspan.ro\/blog\/magazinul-tau-woocommerce-s-a-prabusit-de-black-friday-iata-ce-trebuie-sa-faci-acum-pentru-urmatorul\/\">WooCommerce \u0219i v\u00e2rfurile de trafic<\/a> trateaz\u0103 separat workerii PHP, cererile dinamice \u0219i \u00eenc\u0103rcarea bazei de date.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pentru probleme mai generale de concuren\u021b\u0103 \u0219i indisponibilitate, consult\u0103 \u0219i articolul despre <a href=\"https:\/\/www.serverspan.ro\/blog\/de-ce-site-ul-tau-wordpress-cedeaza-la-valuri-de-trafic-si-cum-il-poti-remedia-definitiv\/\">site-urile WordPress care cedeaz\u0103 la valuri de trafic<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Monitorizeaz\u0103 vechimea cozii dup\u0103 remediere<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">O coad\u0103 reparat\u0103 trebuie s\u0103 prezinte mai pu\u021bine restan\u021be, o dat\u0103 mai recent\u0103 pentru cea mai veche ac\u021biune \u0219i niciun e\u0219ec repetat pentru hook-ul corectat. Repet\u0103 m\u0103sur\u0103torile dup\u0103 o or\u0103 \u0219i dup\u0103 24 de ore.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cel mai util prag de alertare nu este num\u0103rul total de ac\u021biuni pending. Genereaz\u0103 o alert\u0103 atunci c\u00e2nd cea mai veche ac\u021biune restant\u0103 dep\u0103\u0219e\u0219te \u00eent\u00e2rzierea acceptat\u0103 de magazin sau c\u00e2nd num\u0103rul restan\u021belor cre\u0219te la mai multe verific\u0103ri consecutive.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Regula final\u0103 este direct\u0103. Confirm\u0103 c\u0103 joburile sunt \u00eentr-adev\u0103r restante, identific\u0103 hook-ul care le produce, verific\u0103 pornirea cronului \u0219i repar\u0103 erorile repetate \u00eenainte de procesarea cozii. Ruleaz\u0103 loturi mici \u0219i urm\u0103re\u0219te CPU-ul, checkoutul \u0219i ac\u021biunile failed. O coad\u0103 care \u00eencepe imediat s\u0103 creasc\u0103 din nou are \u00eenc\u0103 o problem\u0103 nerezolvat\u0103 de produc\u021bie sau capacitate.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Un backlog WooCommerce Action Scheduler apare atunci c\u00e2nd ac\u021biunile restante sunt create mai repede dec\u00e2t le poate finaliza serverul. Nu evalua coada numai dup\u0103 num\u0103rul total de ac\u021biuni cu status pending, deoarece joburile programate pentru viitor sunt normale. Num\u0103r\u0103 ac\u021biunile care \u0219i-au dep\u0103\u0219it ora programat\u0103, identific\u0103 hook-ul dominant, verific\u0103 func\u021bionarea WP-Cron \u0219i cite\u0219te logurile joburilor [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":3075,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[17503,17479,17474,17500,17498,17497,17512,17496,17506,17510,17505,17508,17502,17511,17504,17518,17509,17517,17501,17499,17516,17519,17507,17514,17515,17513,17482,17481,17483,17476],"class_list":["post-3077","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-web-hosting","tag-action-scheduler-cpu-ridicat","tag-action-scheduler-wp-cli","tag-action-scheduler-wp-cron","tag-actiuni-failed-action-scheduler","tag-actiuni-pending-action-scheduler","tag-actiuni-programate-woocommerce-restante","tag-backlog-webhook-woocommerce","tag-backlog-woocommerce-action-scheduler","tag-batch-size-action-scheduler","tag-cea-mai-veche-actiune-pending","tag-coada-action-scheduler","tag-coada-woocommerce-blocata","tag-cron-woocommerce-nu-functioneaza","tag-cron-woocommerce-shared-hosting","tag-ecran-actiuni-programate-woocommerce","tag-golire-sigura-action-scheduler","tag-hook-woocommerce-action-scheduler","tag-joburi-cron-woocommerce-esuate","tag-joburi-woocommerce-in-fundal","tag-joburi-woocommerce-ratate","tag-joburi-woocommerce-subscriptions-intarziate","tag-shared-hosting-pentru-woocommerce","tag-tabele-action-scheduler","tag-timeout-action-scheduler","tag-varf-cpu-woocommerce","tag-workeri-php-woocommerce","tag-wp-action-scheduler-run","tag-wp_actionscheduler_actions","tag-wp_actionscheduler_logs","tag-wp-cron-woocommerce"],"_links":{"self":[{"href":"https:\/\/www.serverspan.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3077","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.serverspan.com\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.serverspan.com\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.serverspan.com\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.serverspan.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3077"}],"version-history":[{"count":1,"href":"https:\/\/www.serverspan.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3077\/revisions"}],"predecessor-version":[{"id":3078,"href":"https:\/\/www.serverspan.com\/blog\/index.php?rest_route=\/wp\/v2\/posts\/3077\/revisions\/3078"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.serverspan.com\/blog\/index.php?rest_route=\/wp\/v2\/media\/3075"}],"wp:attachment":[{"href":"https:\/\/www.serverspan.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3077"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.serverspan.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3077"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.serverspan.com\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3077"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}