Redis 역직렬화 오류 setup:static-content:deploy

이 문서에서는 magento setup:static-content:deploy을(를) 실행할 때 Redis unserialize 오류를 수정합니다.

magento setup:static-content:deploy을(를) 실행하면 Redis 오류가 발생합니다.

[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

이 문제는 Redis 연결에 대한 병렬 간섭 프로세스로 인해 발생합니다.

해결하려면 다음 환경 변수를 설정하여 단일 스레드 모드에서 setup:static-content:deploy을(를) 실행하십시오.

STATIC_CONTENT_THREADS =1

또는 setup:static-content:deploy 명령 다음에 -j 1(또는 --jobs=1) 인수를 실행합니다.

다중 스레딩을 비활성화하면 정적 에셋을 배포하는 프로세스가 느려집니다.

영향을 받는 버전

  • Adobe Commerce 온-프레미스: 2.1.2 이상
  • cloud infrastructure 2.1.2 이상 버전의 Adobe Commerce
  • 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_defaultweb에 대한 응답이 필요하지만 다른 프로세스에서 만든 system_cache_exists에 대한 응답을 받았습니다. 자세한 설명은 Jason Woods의 게시물을 참조하세요.

솔루션

병렬 처리를 사용하지 않도록 설정하고 다음 환경 변수를 설정하여 단일 스레드 모드에서 setup:static-content:deploy을(를) 실행하십시오.

STATIC_CONTENT_THREADS =1

setup:static-content:deploy 명령 다음에 -j 1(또는 --jobs=1) 인수를 실행할 수도 있습니다.

NOTE
단일 스레드 모드에서 정적 콘텐츠 배포 프로세스는 4배 더 걸릴 수 있습니다.

추가 정보

개발자 설명서에서:

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