トピックが立ってから一週間経過しましたが、Takahashi さんは最初の投稿のみで音沙汰無しですね。
「バグを10年以上もずっと放置」とありますが、自分でバグ報告もせず、一方的に言いっぱなしで一週間放置という状況を見るに、
まあそうでしょうねと思います。
さて、興味深い話題ではありましたので、私も少し実際に試してみました。
さすがに30アカウントというのは無理なので、Thunderbirdの新規アカウントにPOPアカウント4つを設定、
さらに少し負荷をかけるためにGmailのIMAPアカウント2つも追加し、それぞれ1分ごとに新着確認を行うように設定しました。
Gmailは「すべてのメール」など重複するフォルダーのメールを同期ダウンロードすることになるので、
しばらくメールのダウンロードが続くことになります。
上記のプロファイルを準備しておき、POP3モジュールの動作ログをタイムスタンプ付きで出力するよう設定してThunderbirdを起動しました。
(参考:
https://www.clear-code.com/blog/2013/6/25.html )
2時間ほど動かしてから終了してログを回収し、ログから「SEND: USER」(サーバーに接続するためにユーザー情報を送信)している行のタイムスタンプを拾い、動作間隔を調べました。
結果は以下の表(画像)となりました。
添付ファイル:
1分周期受信.jpg [ 1.36 MiB | 表示数: 5025 回 ]
ほとんどが1秒未満の精度で1分間隔でメールチェックの動作していますが、緑で塗った箇所は2秒ほど前後し、オレンジに塗った箇所は1分30秒、1か所赤で塗ったものは2分となっていました。
Thunderbird プログラムのソースコードを調べたのですが、
各アカウント(フォルダー?)ごとに順に何分間隔の設定値を読み出し、それを足して次のチェック時刻を算出して、それと現在時刻を比較してタイミングを決めていました。
そして要求をキューにセットし、それにしたがって実際の処理が発動する仕組みになっているようです。
このロジックで遅延が発生するのであれば、Thunderbird のプログラムの大改造を行わない限り無理じゃないかなと思います。
Takahashi さんが書きました:
メールの受信間隔を1分で設定しています。
Takahashi さんが書きました:
必要があるからそうしているのです。
サーバー上のメールを1分間隔でチェックする必要があったとして、それを Thunderbird のようなGUIのメールソフトで行うことも必要があってのことなのでしょうか?
Thunderbird は人間がメールに対してアクションすることが前提のアプリです。
もしメールが複数アカウントに同時に来て、それへのアクションが1分以内に終わらないようなことがあれば、その時点で1分間隔にこだわる意味がなくなるかと思います。
単に通知するだけのメールなのであれば、Thunderbird は不要で他に適したツールがあるように思います。
仮に Thunderbird である必要があったとして、それを1つの Thunderbird で30アカウント全部ではなく、複数起動や複数PCに分散させるという選択肢を模索するべきかと思います。