Open2

Playwright + 複数Android端末によるスクレイピングを簡単に実現できるライブラリを作りたい

masa5714masa5714

現状の問題点

  • PlaywrightをAndroid端末で操作できるが、複数台で別々のタスクを実行するのが結構難しい。
  • 動的にタスクの追加をするのも難しい。
  • USBの接続 / 切断 による接続台数の変化が起きると処理ができなくなる。
  • ちゃんとしたものを作らないと端末毎のタスク振り分けが適切にできずニート状態の端末が発生してしまう。
  • Android Chromeを操作やTap操作などがそのままのPlaywrightでは使い物にならないことが多い。
masa5714masa5714

実装メモ

実装していく中で起きたことをメモしていく。

BullMQは進行中のタスクを強制終了できなかった。

USBケーブルが抜けたときにエラーで止まってしまわぬよう、タスクを破棄するようにしたかった。しかし、BullMQは堅牢なジョブ管理をする設計になっているために進行中のタスクの破棄ができなかった。ということで、前身となるライブラリ「Bull」を使ってみることにする。

new AbortController() にてタスク強制終了を実装してみたが、throw new Errorでキャッチできないため後始末に困ってしまった。今回の用途ではあまり適さないように感じた。