diff --git a/server/core/BookConverter/ConvertBase.js b/server/core/BookConverter/ConvertBase.js index ca78b442..ef06884e 100644 --- a/server/core/BookConverter/ConvertBase.js +++ b/server/core/BookConverter/ConvertBase.js @@ -5,6 +5,8 @@ const chardet = require('chardet'); const textUtils = require('./textUtils'); const utils = require('../utils'); +let execConverterCounter = 0; + class ConvertBase { constructor(config) { this.config = config; @@ -30,7 +32,11 @@ class ConvertBase { } async execConverter(path, args, onData) { + execConverterCounter++; try { + if (execConverterCounter > 10) + throw new Error('Слишком большая очередь конвертирования. Пожалуйста, попробуйте позже.'); + const result = await utils.spawnProcess(path, {args, onData}); if (result.code != 0) { let error = result.code; @@ -46,6 +52,8 @@ class ConvertBase { } else { throw new Error(e); } + } finally { + execConverterCounter--; } }