Discordへのメール送信にレート制限を追加

This commit is contained in:
2025-10-13 14:54:08 +09:00
parent e3342999b7
commit 57681f6172

20
app.py
View File

@@ -314,6 +314,18 @@ class EmailMonitor:
logger.error(f"Discord送信エラー: {str(e)}")
return False
def send_to_discord_with_rate_limit(self, email_msgs: List[EmailMessage], rate_limit: float = 1.0, batch_size: int = 10):
"""Discordにメールを送信レート制限対応"""
for i in range(0, len(email_msgs), batch_size):
batch = email_msgs[i:i + batch_size]
for email_msg in batch:
if self.send_to_discord(email_msg):
logger.info(f"処理完了: {email_msg.subject}")
self.last_processed_uid = email_msg.uid # 最後に処理したUIDを更新
else:
logger.warning(f"Discord送信失敗: {email_msg.subject}")
time.sleep(rate_limit) # レート制限のための待機
def start_monitoring(self):
"""メール監視を開始"""
logger.info("メール監視を開始します...")
@@ -334,13 +346,7 @@ class EmailMonitor:
if new_emails:
logger.info(f"{len(new_emails)}件の新しいメールが見つかりました")
for email_msg in new_emails:
if self.send_to_discord(email_msg):
logger.info(f"処理完了: {email_msg.subject}")
self.last_processed_uid = email_msg.uid # 最後に処理したUIDを更新
else:
logger.warning(f"Discord送信失敗: {email_msg.subject}")
self.send_to_discord_with_rate_limit(new_emails)
else:
logger.debug("新しいメールはありません")