From 08782b4c87d1d1936dcff3d28952d995c898c7d0 Mon Sep 17 00:00:00 2001 From: Cassio Cabral Date: Mon, 28 Sep 2015 11:03:22 -0300 Subject: [PATCH] adiciona fila ao video rnp --- endpoints/videornp.js | 44 +++++++++++++++++++++++++++++--------------- 1 file changed, 29 insertions(+), 15 deletions(-) diff --git a/endpoints/videornp.js b/endpoints/videornp.js index 650ce9d..8f0bc42 100644 --- a/endpoints/videornp.js +++ b/endpoints/videornp.js @@ -8,6 +8,8 @@ var uuid = require('node-uuid'); var mkdirp = require('mkdirp'); var async = require('async'); var _ = require('lodash'); +var kue = require('kue'), + queue = kue.createQueue(); function init(req, res, Request) { res.set("Content-Type", "application/json"); @@ -165,21 +167,33 @@ function callCoreSubtitle(id, subtitle, req, res, Request, request_object) { var command_line = 'vlibras_user/vlibras-core/./vlibras -S ' + ' uploads/' + id + '/' + req.files.legenda.name + ' -l portugues -b opaco --id' + id + ' --mode devel > /tmp/core_log 2>&1'; - /* Executa a linha de comando */ - child = exec(command_line, function(err, stdout, stderr) { - // [stdout] = vlibras-core output - // console.log(stdout); - }); - - /* Listener que dispara quando a requisição ao core finaliza */ - child.on('close', function(code, signal){ - res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + id + '.flv' }); - }); - - /* Listener que dispara quando a requisição ao core da erro */ - child.on('error', function(code, signal){ - res.send(500, parameters.errorMessage('Erro na chamada ao core')); - }); + var child; + var job = queue.create('exec_command_line' + id, { + title: 'Command Line for: ' + req.body.servico, + command_line: command_line + }).removeOnComplete( true ).save(); + + queue.process('exec_command_line' + id, function(job, done){ + child = queue_helper.exec_command_line(job.data.command_line, done); + }); + + job.on('complete', function() { + /* Executa a linha de comando */ + child = exec(command_line, function(err, stdout, stderr) { + // [stdout] = vlibras-core output + // console.log(stdout); + }); + + /* Listener que dispara quando a requisição ao core finaliza */ + child.on('close', function(code, signal){ + res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + id + '.flv' }); + }); + + /* Listener que dispara quando a requisição ao core da erro */ + child.on('error', function(code, signal){ + res.send(500, parameters.errorMessage('Erro na chamada ao core')); + }); + }); } -- libgit2 0.21.2