Yêu cầu Mar 20th, 2023 2:44 a.m. 125 0 1
  • 125 0 1
0

Upload file lên GCP nhưng bị memory leak

Chia sẻ
  • 125 0 1

Chào mọi người, e đang gặp vấn đề là upload lên GCP nhưng khi upload xog thì bị dính memory leak

let streamFile = createReadStream();

streamFile
        .pipe(transformer)
        .on('error', () => reject(error))
        .pipe(
          file.createWriteStream({
            public: IsPublicImage,
            metadata: { contentType: mimetype },
            resumable: false,
          }),
        )
        .on('finish', async () => {
          streamFile.deytroy();
          file = null;
          transformer = null;
          streamFile = null;
          return IsPublicImage
            ? resolve(`pathObject(fileName)`)
            : resolve(fileName);
        })
        .on('error', () => reject(error)),
    ```
    
    Mọi người cho e hỏi có cách nào upload lên GCP mà không bị memory leak không ạ, e cảm ơn

1 CÂU TRẢ LỜI


Đã trả lời Mar 20th, 2023 4:21 a.m.
0

Bạn tách phần release ở chỗ handle finish ra thành 1 hàm gọi là release() {...}. Rồi gọi trong cả các chỗ bị error. Ngoài ra bạn kiểm tra kỹ lại xem on('finish') có đúng khi sử dụng trong trường hợp này không.

Chia sẻ
Mar 20th, 2023 6:04 a.m.

mình có thử rồi mà vẫn k được bác ạ, thử chuyển finish -> end luôn rồi.

Avatar Quang Nguyễn @quangnv1311
Mar 20th, 2023 6:36 a.m.

@thuongne123 Thử console log xem nó có vào không đã nhé

Avatar Quang Nguyễn @quangnv1311
Mar 20th, 2023 6:36 a.m.

@quangnv1311 Sợ rằng có thể nó không thể finish hoặc end nên bị stuck mãi ở đó mà mình không biết.

Mar 20th, 2023 6:37 a.m.

@quangnv1311 finish thì vào end thì k. console xem thử readStream thì cũng báo destroyed.

Avatar Quang Nguyễn @quangnv1311
Mar 20th, 2023 7:40 a.m.

@thuongne123 Thế bạn chắc chắn là bị memory leak chưa nhỉ. Bạn đang check memory leak bằng cách nào.

Mar 20th, 2023 7:45 a.m.

@quangnv1311 mình check Monitoring trên GCP, khi upload đoạn này, memory dựng đứng và clear, còn các request bth thì vẫn clear

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí