Asked Mar 20th, 2023 2:44 a.m. 126 0 1
  • 126 0 1
0

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

Share
  • 126 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 ANSWERS


Answered 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.

Share
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.

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

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

0
| Reply
Share
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.

0
| Reply
Share
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.

0
| Reply
Share
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.

0
| Reply
Share
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

0
| Reply
Share
Viblo
Let's register a Viblo Account to get more interesting posts.