47 lines
No EOL
1.3 KiB
TypeScript
47 lines
No EOL
1.3 KiB
TypeScript
import { initializeWcagConfig, getWorkerConfig } from '@wcag-ada/config';
|
|
import { logger } from './utils/logger';
|
|
import { ScanWorker } from './workers/scan-worker';
|
|
import { SchedulerService } from './services/scheduler';
|
|
import { HealthService } from './services/health';
|
|
import { gracefulShutdown } from './utils/shutdown';
|
|
|
|
async function main() {
|
|
try {
|
|
// Initialize configuration
|
|
const config = initializeWcagConfig('worker');
|
|
const workerConfig = getWorkerConfig();
|
|
|
|
logger.info('Starting WCAG-ADA Worker Service', {
|
|
environment: config.environment,
|
|
concurrency: workerConfig.concurrency,
|
|
queue: workerConfig.queueName,
|
|
});
|
|
|
|
// Initialize services
|
|
const scanWorker = new ScanWorker();
|
|
const scheduler = new SchedulerService();
|
|
const health = new HealthService();
|
|
|
|
// Start services
|
|
await scanWorker.start();
|
|
logger.info('Scan worker started');
|
|
|
|
if (workerConfig.scheduler.enabled) {
|
|
await scheduler.start();
|
|
logger.info('Scheduler service started');
|
|
}
|
|
|
|
await health.start();
|
|
logger.info('Health service started');
|
|
|
|
// Setup graceful shutdown
|
|
gracefulShutdown([scanWorker, scheduler, health]);
|
|
|
|
logger.info('WCAG-ADA Worker Service is running');
|
|
} catch (error) {
|
|
logger.error('Failed to start worker service', error);
|
|
process.exit(1);
|
|
}
|
|
}
|
|
|
|
main(); |