Upload 178 files
Browse files
__pycache__/config.cpython-313.pyc
CHANGED
|
Binary files a/__pycache__/config.cpython-313.pyc and b/__pycache__/config.cpython-313.pyc differ
|
|
|
__pycache__/database.cpython-313.pyc
CHANGED
|
Binary files a/__pycache__/database.cpython-313.pyc and b/__pycache__/database.cpython-313.pyc differ
|
|
|
api_server_extended.py
CHANGED
|
@@ -205,11 +205,11 @@ async def shutdown_event():
|
|
| 205 |
# ===== Background Tasks =====
|
| 206 |
|
| 207 |
async def periodic_health_check():
|
| 208 |
-
"""بررسی سلامت دورهای هر
|
| 209 |
while True:
|
| 210 |
try:
|
| 211 |
-
await asyncio.sleep(
|
| 212 |
-
await manager.health_check_all()
|
| 213 |
|
| 214 |
# ارسال بهروزرسانی آمار به کلاینتهای متصل
|
| 215 |
stats = manager.get_all_stats()
|
|
|
|
| 205 |
# ===== Background Tasks =====
|
| 206 |
|
| 207 |
async def periodic_health_check():
|
| 208 |
+
"""بررسی سلامت دورهای هر ۵ دقیقه"""
|
| 209 |
while True:
|
| 210 |
try:
|
| 211 |
+
await asyncio.sleep(300) # 5 minutes
|
| 212 |
+
await manager.health_check_all(silent=True) # بدون چاپ لاگ
|
| 213 |
|
| 214 |
# ارسال بهروزرسانی آمار به کلاینتهای متصل
|
| 215 |
stats = manager.get_all_stats()
|
data/crypto_monitor.db
ADDED
|
Binary file (73.7 kB). View file
|
|
|
database/__pycache__/__init__.cpython-313.pyc
CHANGED
|
Binary files a/database/__pycache__/__init__.cpython-313.pyc and b/database/__pycache__/__init__.cpython-313.pyc differ
|
|
|
provider_manager.py
CHANGED
|
@@ -400,13 +400,15 @@ class ProviderManager:
|
|
| 400 |
provider.record_failure(str(e))
|
| 401 |
return False
|
| 402 |
|
| 403 |
-
async def health_check_all(self):
|
| 404 |
"""بررسی سلامت همه ارائهدهندگان"""
|
| 405 |
tasks = [self.health_check(provider) for provider in self.providers.values()]
|
| 406 |
results = await asyncio.gather(*tasks, return_exceptions=True)
|
| 407 |
|
| 408 |
online = sum(1 for r in results if r is True)
|
| 409 |
-
|
|
|
|
|
|
|
| 410 |
|
| 411 |
def get_provider(self, provider_id: str) -> Optional[Provider]:
|
| 412 |
"""دریافت ارائهدهنده با ID"""
|
|
|
|
| 400 |
provider.record_failure(str(e))
|
| 401 |
return False
|
| 402 |
|
| 403 |
+
async def health_check_all(self, silent: bool = False):
|
| 404 |
"""بررسی سلامت همه ارائهدهندگان"""
|
| 405 |
tasks = [self.health_check(provider) for provider in self.providers.values()]
|
| 406 |
results = await asyncio.gather(*tasks, return_exceptions=True)
|
| 407 |
|
| 408 |
online = sum(1 for r in results if r is True)
|
| 409 |
+
if not silent:
|
| 410 |
+
print(f"✅ بررسی سلامت: {online}/{len(self.providers)} ارائهدهنده آنلاین")
|
| 411 |
+
return online, len(self.providers)
|
| 412 |
|
| 413 |
def get_provider(self, provider_id: str) -> Optional[Provider]:
|
| 414 |
"""دریافت ارائهدهنده با ID"""
|