📌
【Puppeteer】Attempted to use detached Frame の対応
問題点
Puppeteer を利用しているとAttempted to use detached Frameがたまに表示される。
中で起動しているブラウザと node.js の通信が切れてしまうと発生する。
※ ECS のコンテナで常時稼働しているみたいなプロセスで、SIGTERM が発生すると今回の対応をしても表示される
デフォルト設定だと WebSocket で通信するみたい。
ポートを通じて通信しているためか、パフォーマンスも悪いよう。
解決策
puppeteer.launch するときのオプションにpipe:trueを設定すると、stdio方式に変換される。
ネットワークを解するわけではなくなるため、パフォーマンスが良くなる。
puppeteer.launch({
...
pipe: true
})
参考資料
Discussion