浏览代码

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

Book Pauk 6 年之前
父节点
当前提交
56bf69a770
共有 1 个文件被更改,包括 8 次插入0 次删除
  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 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--;
         }
     }