Files
trading_bot_v3/scripts/managed-dev-server.js
mindesbunister 1e4f305657 fix: emergency automation fix - stop runaway trading loops
- Replace automation service with emergency rate-limited version
- Add 5-minute minimum interval between automation starts
- Implement forced Chromium process cleanup on stop
- Backup broken automation service as .broken file
- Emergency service prevents multiple simultaneous automations
- Fixed 1400+ Chromium process accumulation issue
- Tested and confirmed: rate limiting works, processes stay at 0
2025-07-24 20:33:20 +02:00

70 lines
2.0 KiB
JavaScript

#!/usr/bin/env node
/**
* Managed Development Server
*
* This script manages the Next.js development server with proper process handling
* and pre-compilation of TypeScript modules for immediate responsiveness.
*/
const { spawn } = require('child_process');
const path = require('path');
console.log('🚀 Starting Managed Development Server...');
// Pre-compile TypeScript modules first
console.log('🔄 Step 1: Pre-compiling TypeScript modules...');
const precompileProcess = spawn('node', ['scripts/precompile-modules.js'], {
stdio: 'inherit',
cwd: process.cwd()
});
precompileProcess.on('close', (code) => {
if (code === 0) {
console.log('✅ Pre-compilation completed successfully');
startDevServer();
} else {
console.log('⚠️ Pre-compilation completed with warnings, proceeding...');
startDevServer();
}
});
precompileProcess.on('error', (error) => {
console.log('⚠️ Pre-compilation error:', error.message);
console.log('🔄 Proceeding with development server...');
startDevServer();
});
function startDevServer() {
console.log('🚀 Step 2: Starting Next.js development server...');
const devServer = spawn('npx', ['next', 'dev', '--port', '3000', '--hostname', '0.0.0.0'], {
stdio: 'inherit',
cwd: process.cwd()
});
// Handle graceful shutdown
process.on('SIGINT', () => {
console.log('\n🛑 Received SIGINT, shutting down gracefully...');
devServer.kill('SIGTERM');
process.exit(0);
});
process.on('SIGTERM', () => {
console.log('\n🛑 Received SIGTERM, shutting down gracefully...');
devServer.kill('SIGTERM');
process.exit(0);
});
devServer.on('error', (error) => {
console.error('💥 Development server error:', error);
process.exit(1);
});
devServer.on('close', (code) => {
console.log(`🏁 Development server exited with code ${code}`);
process.exit(code);
});
}