launch configs

This commit is contained in:
Dobromir Popov
2025-08-05 17:36:58 +03:00
parent 468fa0dcd6
commit dc326acf85
2 changed files with 161 additions and 21 deletions

View File

@ -75,11 +75,13 @@ class COBYApplication:
)
self.tasks.append(api_task)
# Start exchange connectors (placeholder for now)
logger.info("Exchange connectors would start here...")
# Start exchange connectors
logger.info("Starting exchange connectors...")
await self._start_exchange_connectors()
# Start data processing pipeline (placeholder for now)
logger.info("Data processing pipeline would start here...")
# Start data processing pipeline
logger.info("Starting data processing pipeline...")
await self._start_data_processing()
self.running = True
logger.info("COBY system started successfully")
@ -123,26 +125,55 @@ class COBYApplication:
except Exception as e:
logger.error(f"Error stopping COBY application: {e}")
async def _run_api_server(self, app, host: str, port: int):
"""Run the API server"""
async def _start_exchange_connectors(self):
"""Start exchange connectors"""
try:
# Import here to avoid circular imports
import uvicorn
# Import connectors
from connectors.binance_connector import BinanceConnector
from connectors.kucoin_connector import KucoinConnector
from connectors.coinbase_connector import CoinbaseConnector
config = uvicorn.Config(
app,
host=host,
port=port,
log_level="info",
access_log=True
)
server = uvicorn.Server(config)
await server.serve()
# Initialize connectors
self.connectors = {
'binance': BinanceConnector(),
'kucoin': KucoinConnector(),
'coinbase': CoinbaseConnector()
}
except ImportError:
logger.error("uvicorn not available, falling back to basic server")
# Fallback implementation would go here
await asyncio.sleep(3600) # Keep running for an hour
# Start connectors
for name, connector in self.connectors.items():
try:
logger.info(f"Starting {name} connector...")
connector_task = asyncio.create_task(self._run_connector(connector))
self.tasks.append(connector_task)
except Exception as e:
logger.error(f"Failed to start {name} connector: {e}")
except Exception as e:
logger.error(f"Error starting exchange connectors: {e}")
async def _run_connector(self, connector):
"""Run a single connector"""
try:
# Connect to exchange
if await connector.connect():
logger.info(f"Connected to {connector.exchange_name}")
# Subscribe to default symbols
default_symbols = ['BTCUSDT', 'ETHUSDT', 'ADAUSDT', 'SOLUSDT']
for symbol in default_symbols:
try:
await connector.subscribe_orderbook(symbol)
await connector.subscribe_trades(symbol)
logger.info(f"Subscribed to {symbol} on {connector.exchange_name}")
except Exception as e:
logger.warning(f"Failed to subscribe to {symbol} on {connector.exchange_name}: {e}")
# Keep connector running
while connector.is_connected:
await asyncio.sleep(1)
async def main():