【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
})

参考資料

LaunchOptions interface | Puppeteer
Signature
[Bug]: Error: Attempted to use detached Frame 'xxx...xxx' after waking up from standby · Issue #12423 · puppeteer/puppeteer
Minimal, reproducible example //import puppeteer from 'puppeteer'; const puppeteer = require('puppeteer'); const wait = ...

コメント

タイトルとURLをコピーしました