GmailUIとGmailのIMAP実装の両方と相互作用するChrome拡張機能に取り組んでいます。
私のアプリのバックエンドは、各ユーザーのすべての受信メールを監視し、関心のあるメッセージ/送信者が受信されるたびにDBを更新する必要があります。
「ユーザーが開始した」ポーリングを設定できます。このポーリングでは、アプリが読み込まれるたびにすべての新しいメッセージをスキャンしますが、ユーザーがブラウザーを使用している場合にのみアプリが最新であるため、欠点があります。常に最新の状態にしたいと思います...
オフハンドでは、次のようなすべてのユーザーの単純なサーバーポーリングを検討しました。
For x = 0 to All users
Fetch ALL msg where UID > lastMessageID
if msg.sender == something i care about
UPDATE table...
<repeat>
また、次のようなIMAPIDLEの使用についても考えました。
For all users, establish imap idle call
for any user whos imap idle returned
if msg.sender == something i care about
UPDATE table...
私が理解しようとしているのは、最低でも5〜10kのアカウントを監視する必要があるため、どちらがより適切に拡張されるかということです...
足りないものはありますか?多数のアカウントに対してこれを行う簡単な方法はありますか?
- メッセージをスキャンしてテーブルを更新する以外は、メッセージを保存する必要はありません。