@@ -36,6 +36,7 @@ const async = require('async');
3636const odmOptions = require ( './odmOptions' ) ;
3737const asrProvider = require ( './asrProvider' ) ;
3838const floodMonitor = require ( './floodMonitor' ) ;
39+ const concurrencyMonitor = require ( './concurrencyMonitor' ) ;
3940const AWS = require ( 'aws-sdk' ) ;
4041
4142module . exports = {
@@ -209,13 +210,15 @@ module.exports = {
209210 const taskId = taskInfo . uuid ;
210211
211212 asrProvider . onCommit ( taskId , 10 * 1000 ) ;
212-
213+
213214 // Add reference to S3 path if necessary
214215 if ( asrProvider . downloadsPath ( ) ) {
215216 taskInfo . s3Path = asrProvider . downloadsPath ( ) ;
216217 }
217-
218+
218219 const token = await routetable . lookupToken ( taskId ) ;
220+ concurrencyMonitor . decreaseCount ( token ) ;
221+
219222 try {
220223 cloudProvider . taskFinished ( token , taskInfo ) ;
221224 } catch ( e ) {
@@ -370,11 +373,17 @@ module.exports = {
370373 asrProvider . cleanup ( taskId ) ;
371374 } ;
372375
376+ if ( concurrencyMonitor . checkCommitLimitReached ( limits . maxConcurrentTasks , query . token ) ) {
377+ die ( `Reached maximum number of concurrent tasks, please wait until other tasks have finished, then restart the task.` ) ;
378+ return ;
379+ }
380+
373381 if ( await maxConcurrencyLimitReached ( limits . maxConcurrentTasks , query . token ) ) {
374- die ( `Reached maximum number of concurrent tasks: ${ limits . maxConcurrentTasks } . Please wait until other tasks have finished, then restart the task.` ) ;
382+ die ( `Reached maximum number of concurrent tasks. Please wait until other tasks have finished, then restart the task.` ) ;
375383 return ;
376384 }
377385
386+
378387 floodMonitor . recordTaskCommit ( query . token ) ;
379388 utils . markTaskAsCommitted ( taskId ) ;
380389
@@ -456,6 +465,8 @@ module.exports = {
456465 } ) ;
457466 busboy . on ( 'finish' , async function ( ) {
458467 if ( taskId ) {
468+ concurrencyMonitor . decreaseCount ( query . token ) ;
469+
459470 let node = await routetable . lookupNode ( taskId ) ;
460471 if ( node ) {
461472 overrideRequest ( req , node , query , pathname ) ;
0 commit comments