Redis unserialize 오류 설정배포

Adobe Commerce에서 setup:static-content:deploy 명령을 실행하면 병렬 프로세스가 정적 콘텐츠 배포 중에 Redis 연결을 방해할 때 Redis Unserialize 오류가 트리거됩니다. 이 문제는 배포를 중단하고 직렬화 해제 및 Redis 연결 오류를 반환합니다. 이 문제를 해결하려면 병렬 Redis 액세스 충돌을 방지하기 위해 정적 콘텐츠 배포를 단일 스레드 모드로 실행합니다.

설명 description

영향을 받는 버전

  • 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_cache_exists에 대한 응답이 필요합니다. 자세한 설명은 Jason Woods의 게시물을 참조하세요.

해결 방법 resolution

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

STATIC_CONTENT_THREADS=1

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

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

관련 읽기

개발자 설명서에서:

recommendation-more-help
3d58f420-19b5-47a0-a122-5c9dab55ec7f