22 lines
756 B
TypeScript
22 lines
756 B
TypeScript
import { createWorker as mediasoupCreateWorker } from 'mediasoup';
|
|
import logger from 'modules/winston/logger';
|
|
import { workerSettings } from './config';
|
|
|
|
/**
|
|
* * For now, each channel uses its own worker
|
|
* ! Do not create more Workers than the number of CPU-Cores
|
|
*/
|
|
|
|
export const createWorker = async () => {
|
|
const worker = await mediasoupCreateWorker(workerSettings);
|
|
logger.info(`Mediasoup worker created`, { service: 'mediasoup' });
|
|
|
|
worker.on('died', (error) => {
|
|
// This implies something serious happened, so kill the application
|
|
logger.error(`Mediasoup worker crashed! ${error}`, { error, service: 'mediasoup' });
|
|
setTimeout(() => process.exit(1), 2000); // exit in 2 seconds
|
|
});
|
|
|
|
return worker;
|
|
};
|