Discordへのメール送信にレート制限を追加
This commit is contained in:
22
app.py
22
app.py
@@ -313,7 +313,19 @@ class EmailMonitor:
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"Discord送信エラー: {str(e)}")
|
logger.error(f"Discord送信エラー: {str(e)}")
|
||||||
return False
|
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):
|
def start_monitoring(self):
|
||||||
"""メール監視を開始"""
|
"""メール監視を開始"""
|
||||||
logger.info("メール監視を開始します...")
|
logger.info("メール監視を開始します...")
|
||||||
@@ -334,13 +346,7 @@ class EmailMonitor:
|
|||||||
|
|
||||||
if new_emails:
|
if new_emails:
|
||||||
logger.info(f"{len(new_emails)}件の新しいメールが見つかりました")
|
logger.info(f"{len(new_emails)}件の新しいメールが見つかりました")
|
||||||
|
self.send_to_discord_with_rate_limit(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}")
|
|
||||||
else:
|
else:
|
||||||
logger.debug("新しいメールはありません")
|
logger.debug("新しいメールはありません")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user