Redis serialize error setupdeploy
In Adobe Commerce wird beim Ausführen des setup:static-content:deploy-Befehls in Triggern ein Redis-Deserialisierungsfehler ausgegeben, wenn parallele Prozesse während der Bereitstellung statischer Inhalte die Redis-Verbindung beeinträchtigen. Durch dieses Problem wird die Bereitstellung unterbrochen und es werden Unserialize- und Redis-Verbindungsfehler zurückgegeben. Um dieses Problem zu beheben, führen Sie die Bereitstellung statischer Inhalte im Einzelthreadmodus aus, um Konflikte mit dem parallelen Redis-Zugriff zu verhindern.
Beschreibung description
Betroffene Versionen
- Adobe Commerce On-Premises: 2.1.2 und höher
- Adobe Commerce auf Cloud-Infrastruktur 2.1.2 und höher
- Redis, beliebige Version
Problem/Symptome
Die Ausführung des setup:static-content:deploy-Befehls verursacht den Redis-Fehler:
)
[ 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
Ursache
Das Problem wird durch parallele, störende Prozesse auf der Redis-Verbindung verursacht.
Hier erwartete ein Prozess in App/Config/Type/System.php eine Antwort für system_cache_exists, die von einem anderen Prozess vorgenommen wurde. Siehe die detaillierte Erklärung in Jason Woods' Beitrag.
Lösung resolution
Deaktivieren Sie die Parallelität und führen Sie setup:static-content:deploy in einem Einzelthreadmodus aus, indem Sie die folgende Umgebungsvariable festlegen:
STATIC_CONTENT_THREADS=1
Sie können auch den setup:static-content:deploy-Befehl ausführen, gefolgt vom -j 1-Argument (oder --jobs=1-Argument).
Hinweis: Im Single-Thread-Modus kann der Bereitstellungsprozess statischer Inhalte viermal länger dauern.
Verwandtes Lesen
In unserer Entwicklerdokumentation: