Redis未序列化错误设置部署
在Adobe Commerce中,当并行进程在静态内容部署期间干扰Redis连接时,运行setup:static-content:deploy命令会触发一个Redis非序列化错误。 此问题会中断部署并返回非序列化和Redis连接错误。 要解决此问题,请在单线程模式下运行静态内容部署,以防止并行Redis访问冲突。
描述 description
受影响的版本
- Adobe Commerce内部部署:2.1.2及更高版本
- 云基础架构上的Adobe Commerce 2.1.2及更高版本
- Redis,任何版本
问题/症状
运行setup:static-content:deploy命令导致Redis错误:
)
[ 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
原因
问题是由于Redis连接上的并行干扰进程造成的。
此处,App/Config/Type/System.php中的进程需要其他进程针对system_cache_exists做出的响应。 查看Jason Woods帖子中的详细说明。
解决方法 resolution
通过设置以下环境变量,禁用并行度并在单线程模式下运行setup:static-content:deploy:
STATIC_CONTENT_THREADS=1
您还可以运行setup:static-content:deploy命令,后跟-j 1(或--jobs=1)参数。
注意:在单线程模式下,静态内容部署过程可能需要四倍于此的时间。
相关阅读
在我们的开发人员文档中:
recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f