Redis unserialize error setup:static-content:deploy

Dit artikel bevat een oplossing voor de Redis-fout bij het ongedaan maken van de serienummering wanneer magento setup:static-content:deploy wordt uitgevoerd.

Als magento setup:static-content:deploy wordt uitgevoerd, treedt de fout Redis op:

[Exception]
Notice: unserialize(): Error at offset 0 of 1 bytes in
/var/www/domain.com/vendor/magento/module-config/App/Config/Type/System.php on line 214

Het probleem wordt veroorzaakt door parallelle storende processen op de Redis-verbinding.

Als u wilt oplossen, voert u setup:static-content:deploy uit in een modus met één thread door de volgende omgevingsvariabele in te stellen:

STATIC_CONTENT_THREADS =1

of voert u de opdracht setup:static-content:deploy uit, gevolgd door het argument -j 1 (of --jobs=1 ).

Merk op dat het onbruikbaar maken van multithreading het proces vertraagt om statische activa op te stellen.

Betrokken versies

  • Adobe Commerce op locatie: 2.1.2 en hoger
  • Adobe Commerce over cloudinfrastructuur 2.1.2 en hoger
  • Redis, elke versie

Probleem

Als u de opdracht setup:static-content:deploy uitvoert, treedt de fout Redis op:

)
[2017-06-02 19:57:59] Command:php ./bin/magento setup:static-content:deploy --jobs=3  en_US

[Exception]

Notice: unserialize(): Error at offset 0 of 1 bytes in /app/<domain>/vendor/magento/module-config/App/Config/Type/System.php
on line 214

.....

[CredisException]
read error on connection

[RedisException]
read error on connection

.....

[Exception]

Notice: unserialize(): Error at offset 0 of 1 bytes in /app/<domain>/vendor/magento/module-config/App/Config/Type/System.php
on line 214

.....

[RuntimeException]
Command php ./bin/magento setup:static-content:deploy --jobs=3  en_US  returned code 3

Oorzaak

Het probleem wordt veroorzaakt door parallelle storende processen op de Redis-verbinding.

In dit geval verwachtte een proces in App/Config/Type/System.php een reactie voor system_defaultweb , maar ontving het een reactie voor system_cache_exists die door een ander proces werd gemaakt. Zie de gedetailleerde verklaring in Jason Woods' post.

Oplossing

U kunt parallellisme uitschakelen en setup:static-content:deploy uitvoeren in een modus met één thread door de volgende omgevingsvariabele in te stellen:

STATIC_CONTENT_THREADS =1

U kunt ook de opdracht setup:static-content:deploy uitvoeren, gevolgd door het argument -j 1 (of --jobs=1 ).

NOTE
Op de single-thread wijze, kan het statische proces van de inhoudsplaatsing vier keer langer duren.

Meer informatie

In onze documentatie voor ontwikkelaars:

recommendation-more-help
8bd06ef0-b3d5-4137-b74e-d7b00485808a