찾다

 >  Q&A  >  본문

Laravel Excel 대기열이 너무 많은 RAM을 소비합니다.

Laravel Excel을 사용하여 Excel 파일을 읽을 수 있도록 Laravel 대기열을 설정했는데 작은 파일에 적합하게 작동합니다.

그러나 대용량 파일(100MB 이상) 및 400,000개 이상의 레코드의 경우 시간이 너무 많이 걸리고 거의 40GB의 서버 RAM을 소비합니다.

queue:work 명령을 실행하도록 감독자를 설정했습니다. 내 서버 메모리는 60GB입니다. 작은 파일의 경우 모든 것이 잘 작동하지만 큰 파일의 경우 작동하지 않습니다.

망원경을 이용해서 쿼리 시간도 확인해봤는데, 쿼리 시간이 그리 오래 걸리지는 않았어요.

P粉884667022P粉884667022255일 전380

모든 응답(2)나는 대답할 것이다

  • P粉726234648

    P粉7262346482024-03-22 16:23:26

    현재 귀하의 질문에 대한 직접적인 답변은 없습니다. 목표 결과에 따라 많은 것이 달라집니다. 자신만의 해결 방법을 고안해야 합니다.

    저의 가장 큰 관심사 중 하나는 대용량 Excel 파일을 청킹하거나 분할하여 대기열에 넣는 것입니다. Laravel 작업 일괄 처리를 활용할 수도 있습니다.

    소개할 수 있는 또 다른 것은 이러한 무거운 작업을 더 나은 다른 기계로 수행하는 마이크로서비스 시스템입니다.

    하지만 제가 말했듯이 이런 문제에 대한 유일한 해결책은 없습니다. 이건 스스로 알아내야 해요.

    회신하다
    0
  • P粉455093123

    P粉4550931232024-03-22 10:38:32

    이러한 문제에 직면한 모든 사람들에게 Spout를 사용하는 것이 좋습니다. 그것은 매력처럼 작동합니다. 나는 이를 위해 3개의 PHP 서비스를 시도했고 결국에는 스파우트만 작동했습니다.

    https://opensource.box.com/spout/

    https://github.com/box/spout

    회신하다
    0
  • 취소회신하다