Discordへのメール送信にレート制限を追加
This commit is contained in:
22
app.py
22
app.py
@@ -313,7 +313,19 @@ class EmailMonitor:
|
||||
except Exception as e:
|
||||
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("新しいメールはありません")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user