Browse Source

Урезал очередь конвертирования до 10 процессов

Book Pauk 6 years ago
parent
commit
56bf69a770
1 changed files with 8 additions and 0 deletions
  1. 8 0
      server/core/BookConverter/ConvertBase.js

+ 8 - 0
server/core/BookConverter/ConvertBase.js

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