同時に動かせない2つの自動処理を、効率よく回し続けるための設計
■ 導入:別々に作られた2つの自動操作を「同時に回したい」この案件で相談を受けたのは、異なる2つのブラウザ繰り返し操作のAHKを、1本に統合して運用したいという内容でした。もともと依頼者の方は、「ブラウザ上で行う自動操作A」と「自動操作B」を別々のAHKとして持っていて、それぞれ単体では動いている状態でした。ただ、実際の運用としては「AとBをできるだけ並行して回したい」というニーズが強く、2本のスクリプトをどう組み合わせて動かすか が課題になっていました。■ 課題:AHKは“フォーカスを取り合う”ので、本質的に同時には動かせないブラウザ操作の自動化では、どのウィンドウにフォーカスがあるか で挙動が決まります。そのため、単純に自動操作A用のAHK自動操作B用のAHKを同時起動すると、互いにフォーカスを取り合う片方が操作中にもう片方が割り込む結果として、どちらも意図した動きにならないという問題が起こります。さらに厄介なのは、AとBで使うページが同じブラウザ(Chrome)上にあり、AをすべきページBをすべきページを取り違えると、誤操作のリスクが非常に高いという点です。加えて、自動操作の間隔や「1バッチの繰り返し回数」には上限もあり、どの程度のペースで回すか という設計も見直す必要がありました。■ 改善①:2つの自動操作を1本のAHKの中で“順番よく回す”方式に再設計まず行ったのは、「AとBを別々のAHKで動かす」という前提をやめて、1本のAHKの中でAとBを制御するという形に設計を切り替えることでした。どのタイミングでAを動かすかその待ち時間のあいだにBをどこまで進めるかAとBの順
0