TGViewer
| کانال ربات تلگرام | | کانال ربات تلگرام | @developixrobot · 1.24K subscribers
Post #33 695
‏Circuit Breaker در ربات‌های تلگرام ⚡️🛡

خیلی وقت‌ها ربات تلگرام ما به یک سرویس خارجی (مثلاً پرداخت، هوش مصنوعی، یا API داخلی شرکت) وابسته است. وقتی آن سرویس کند یا داون می‌شود، ربات هم کند می‌شود، Timeout می‌دهد و تجربه کاربر نابود می‌شود.

یکی از الگوهای معماری که اینجا واقعاً نجات‌دهنده است، Circuit Breaker Pattern است.

ایدهٔ اصلی:
مثل فیوز برق عمل می‌کند؛ اگر درخواست‌های پشت‌سرهم به سرویس خراب شوند، «مدار» را قطع می‌کند و موقتاً دیگر درخواست به آن سرویس نمی‌فرستد. به‌جایش:

• سریع جواب fallback می‌دهد ⚙️
• از شلوغ‌تر شدن سرویس خراب جلوگیری می‌کند 🚫
• ربات شما Responsive باقی می‌ماند ✅

سه حالت اصلی:
• Closed: همه‌چیز اوکی است، درخواست‌ها مستقیم می‌روند.
• Open: خطای زیاد؛ مدار قطع می‌شود، دیگر درخواست مستقیم نمی‌رود.
• Half-Open: هر چند ثانیه چند درخواست تستی می‌فرستد؛ اگر موفق شد، برمی‌گردد به Closed.

نمونه ساده در Python برای ربات تلگرام:
import time
import requests

class CircuitBreaker:
def __init__(self, failure_threshold=3, reset_timeout=10):
self.failure_threshold = failure_threshold
self.reset_timeout = reset_timeout
self.failures = 0
self.state = 'CLOSED'
self.last_failure_time = 0

def call(self, func, fallback, *args, **kwargs):
if self.state == 'OPEN':
if time.time() - self.last_failure_time > self.reset_timeout:
self.state = 'HALF_OPEN'
else:
return fallback()

try:
result = func(*args, **kwargs)
self.failures = 0
self.state = 'CLOSED'
return result
except Exception:
self.failures += 1
self.last_failure_time = time.time()
if self.failures >= self.failure_threshold:
self.state = 'OPEN'
return fallback()

cb = CircuitBreaker()


استفاده در هندلر پیام:
def call_ai_service(text):
return requests.post('https://api.example.com/ai', json={'q': text}).json()

def ai_fallback():
return {'answer': 'سرویس هوش مصنوعی موقتاً در دسترس نیست 😔'}

# داخل هندلر ربات
response = cb.call(call_ai_service, ai_fallback, message.text)
bot.send_message(chat_id, response['answer'])


نکات کاربردی برای ربات‌های تلگرام:
• برای هر سرویس حساس (پرداخت، AI، CRM) یک Circuit Breaker جدا نگه‌دارید.
• لاگ بگیرید تا بدانید کی مدار Open شده است.
• همراه Circuit Breaker، از Retry با Backoff هم استفاده کنید.


به‌کمک Circuit Breaker ربات‌تان حتی وقتی سرویس‌های بیرونی مشکل دارند، همچنان پایدار و قابل‌اعتماد می‌ماند 💪

🔖 #TelegramBot #ربات #تلگرام #Circuit_Breaker #Resilience #Telegram_Bot #Python #Architecture #Pattern

👤 Developix

💎 Channel: @DevelopixRobot
  • 👍 5
More from @developixrobot
  1. Sep 18, 2026🔥 پروژه: پچ‌رایت؛ Playwright کم‌تر قابل‌ردیابی پچ‌رایت یک فورک از کتابخانهٔ Playwright بر…
  2. Sep 16, 2026🚀 ‏LaraGram Brain منتشر شد! از این به بعد برای ساخت ربات‌های تلگرام با فریم‌ورک LaraG…
  3. Sep 1, 2026خیلی وقت‌ها ربات لینک می‌فرستد، اما پیش‌نمایش بزرگ صفحه کل کل چت را شلوغ می‌کند 😅 مخصوصاً…
  4. Aug 27, 2026💠 نسخه جدید کتابخانه GrammY منتشر شده است 🔸 ارتقا از نسخه 1.45.1 به 1.46.0 🔖 #grammy, #…
  5. Aug 26, 2026💠 نسخه جدید کتابخانه آیوگرام (Aiogram) منتشر شده است 🔸 ارتقا از نسخه 3.30.0 به 3.31.0 🔖…
  6. Aug 24, 2026🔥 پروژه: ‏TikTok Live Connector برای ربات‌ها کتابخانه Node.js ‏TikTok Live Connec…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →