Commit 08782b4c87d1d1936dcff3d28952d995c898c7d0

Authored by Cassio Cabral
1 parent 7f4b7b63
Exists in master and in 1 other branch devel

adiciona fila ao video rnp

Showing 1 changed file with 29 additions and 15 deletions   Show diff stats
endpoints/videornp.js
@@ -8,6 +8,8 @@ var uuid = require('node-uuid'); @@ -8,6 +8,8 @@ var uuid = require('node-uuid');
8 var mkdirp = require('mkdirp'); 8 var mkdirp = require('mkdirp');
9 var async = require('async'); 9 var async = require('async');
10 var _ = require('lodash'); 10 var _ = require('lodash');
  11 +var kue = require('kue'),
  12 + queue = kue.createQueue();
11 13
12 function init(req, res, Request) { 14 function init(req, res, Request) {
13 res.set("Content-Type", "application/json"); 15 res.set("Content-Type", "application/json");
@@ -165,21 +167,33 @@ function callCoreSubtitle(id, subtitle, req, res, Request, request_object) { @@ -165,21 +167,33 @@ function callCoreSubtitle(id, subtitle, req, res, Request, request_object) {
165 var command_line = 'vlibras_user/vlibras-core/./vlibras -S ' + ' uploads/' + id + '/' + 167 var command_line = 'vlibras_user/vlibras-core/./vlibras -S ' + ' uploads/' + id + '/' +
166 req.files.legenda.name + ' -l portugues -b opaco --id' + id + ' --mode devel > /tmp/core_log 2>&1'; 168 req.files.legenda.name + ' -l portugues -b opaco --id' + id + ' --mode devel > /tmp/core_log 2>&1';
167 169
168 - /* Executa a linha de comando */  
169 - child = exec(command_line, function(err, stdout, stderr) {  
170 - // [stdout] = vlibras-core output  
171 - // console.log(stdout);  
172 - });  
173 -  
174 - /* Listener que dispara quando a requisição ao core finaliza */  
175 - child.on('close', function(code, signal){  
176 - res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + id + '.flv' });  
177 - });  
178 -  
179 - /* Listener que dispara quando a requisição ao core da erro */  
180 - child.on('error', function(code, signal){  
181 - res.send(500, parameters.errorMessage('Erro na chamada ao core'));  
182 - }); 170 + var child;
  171 + var job = queue.create('exec_command_line' + id, {
  172 + title: 'Command Line for: ' + req.body.servico,
  173 + command_line: command_line
  174 + }).removeOnComplete( true ).save();
  175 +
  176 + queue.process('exec_command_line' + id, function(job, done){
  177 + child = queue_helper.exec_command_line(job.data.command_line, done);
  178 + });
  179 +
  180 + job.on('complete', function() {
  181 + /* Executa a linha de comando */
  182 + child = exec(command_line, function(err, stdout, stderr) {
  183 + // [stdout] = vlibras-core output
  184 + // console.log(stdout);
  185 + });
  186 +
  187 + /* Listener que dispara quando a requisição ao core finaliza */
  188 + child.on('close', function(code, signal){
  189 + res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + id + '.flv' });
  190 + });
  191 +
  192 + /* Listener que dispara quando a requisição ao core da erro */
  193 + child.on('error', function(code, signal){
  194 + res.send(500, parameters.errorMessage('Erro na chamada ao core'));
  195 + });
  196 + });
183 197
184 } 198 }
185 199