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