Commit 388f5560f143f95b2b727091923d94303602ed43

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

servico de texto agora usa queue

Showing 1 changed file with 46 additions and 16 deletions   Show diff stats
endpoints/texto.js
1 1 var parameters = require('../helpers/parameters');
2 2 var properties = require('../helpers/properties');
  3 +var queue_helper = require('../helpers/queue');
3 4 var db = require('../db/api');
4 5 var exec = require('child_process').exec, child;
5 6 var uuid = require('node-uuid');
6 7 var fs = require('fs');
  8 +var kue = require('kue'),
  9 + queue = kue.createQueue();
7 10  
8 11 function init(req, res, Request) {
9 12  
... ... @@ -38,29 +41,56 @@ function init(req, res, Request) {
38 41 });
39 42  
40 43 /* Cria a linha de comando */
41   - var command_line = 'echo ' + req.body.texto + ' >> text_files/' + id + ' && mkdir uploads/' + id + ' && vlibras_user/vlibras-core/./vlibras ' + parameters.getServiceType(req.body.servico) + ' text_files/' +
  44 + var command_line = 'echo ' + req.body.texto + ' >> text_files/' + id + ' && mkdir uploads/' + id + ' && vlibras_user/vlibras-core/./vlibras ' + parameters.getServiceType(req.body.servico) + ' text_files/' +
42 45 id + ' ' + parameters.getTransparency(req.body.transparencia) + ' ' + id + ' WEB > /tmp/core_log 2>&1';
43 46  
44   - console.log(command_line)
  47 +console.log(command_line);
  48 +
  49 + var job = queue.create('exec_command_line', {
  50 + title: 'Command Line for: ' + req.body.servico,
  51 + command_line: command_line
  52 + }).save();
  53 +
45 54  
46 55 /* Executa a linha de comando */
47   - child = exec(command_line, function(err, stdout, stderr) {
48   - // [stdout] = vlibras-core output
49   - });
  56 + // child = exec(command_line, function(err, stdout, stderr) {
  57 + // // [stdout] = vlibras-core output
  58 + // });
50 59  
51   - /* Listener que dispara quando a requisição ao core finaliza */
52   - child.on('close', function(code, signal){
53   -// res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + id + '.webm' });
54   - db.update(request_object, 'Completed', function(result) {
55   - });
  60 +
  61 + // vai remover isso em cima e colocar isso aqui
  62 + queue.process('exec_command_line', function(job, done){
  63 + queue_helper.exec_command_line(job.data.command_line, done);
56 64 });
57 65  
58   - /* Listener que dispara quando a requisição ao core da erro */
59   - child.on('error', function(code, signal){
60   - res.send(500, parameters.errorMessage('Erro na chamada ao core'));
61   - db.update(request_object, 'Error', function(result) {
62   - });
  66 + job.on('complete', function(){
  67 + console.log("Job complete");
  68 + db.update(request_object, 'Completed', function(result) {
  69 + });
  70 +
  71 + }).on('failed', function(){
  72 + console.log("Job failed");
  73 + res.send(500, parameters.errorMessage('Erro na chamada ao core'));
  74 + db.update(request_object, 'Error', function(result) {
  75 + });
  76 + }).on('progress', function(progress){
  77 + process.stdout.write('\r job #' + job.id + ' ' + progress + '% complete');
63 78 });
64   -};
  79 +
  80 +
  81 + /* Listener que dispara quando a requisição ao core finaliza */
  82 +// child.on('close', function(code, signal){
  83 +// // res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + id + '.webm' });
  84 +// db.update(request_object, 'Completed', function(result) {
  85 +// });
  86 +// });
  87 +//
  88 +// /* Listener que dispara quando a requisição ao core da erro */
  89 +// child.on('error', function(code, signal){
  90 +// res.send(500, parameters.errorMessage('Erro na chamada ao core'));
  91 +// db.update(request_object, 'Error', function(result) {
  92 +// });
  93 +// });
  94 +}
65 95  
66 96 module.exports.init = init;
... ...