Commit be65e74472265cd12ee058b990a81d4d3e37d624

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

fix queue concurrency

endpoints/ios.js
@@ -36,12 +36,12 @@ function init(req, res) { @@ -36,12 +36,12 @@ function init(req, res) {
36 // }); 36 // });
37 37
38 var child; 38 var child;
39 - var job = queue.create('exec_command_line', { 39 + var job = queue.create('exec_command_line' + id, {
40 title: 'Command Line for: ' + req.body.servico, 40 title: 'Command Line for: ' + req.body.servico,
41 command_line: command_line 41 command_line: command_line
42 }).removeOnComplete( true ).save(); 42 }).removeOnComplete( true ).save();
43 43
44 - queue.process('exec_command_line', function(job, done){ 44 + queue.process('exec_command_line' + id, function(job, done){
45 child = queue_helper.exec_command_line(job.data.command_line, done); 45 child = queue_helper.exec_command_line(job.data.command_line, done);
46 }); 46 });
47 47
endpoints/legenda.js
@@ -50,12 +50,12 @@ function init(req, res) { @@ -50,12 +50,12 @@ function init(req, res) {
50 // // console.log(stdout); 50 // // console.log(stdout);
51 // }); 51 // });
52 52
53 - var job = queue.create('exec_command_line', { 53 + var job = queue.create('exec_command_line' + id, {
54 title: 'Command Line for: ' + req.body.servico, 54 title: 'Command Line for: ' + req.body.servico,
55 command_line: command_line 55 command_line: command_line
56 }).save(); 56 }).save();
57 57
58 - queue.process('exec_command_line', function(job, done){ 58 + queue.process('exec_command_line' + id, function(job, done){
59 child = queue_helper.exec_command_line(job.data.command_line, done); 59 child = queue_helper.exec_command_line(job.data.command_line, done);
60 }); 60 });
61 61
endpoints/texto.js
@@ -54,22 +54,20 @@ function init(req, res, Request) { @@ -54,22 +54,20 @@ function init(req, res, Request) {
54 54
55 console.log(command_line); 55 console.log(command_line);
56 var child; 56 var child;
57 - var job = queue.create('exec_command_line', { 57 + var job = queue.create('exec_command_line' + id, {
58 title: 'Command Line for: ' + req.body.servico, 58 title: 'Command Line for: ' + req.body.servico,
59 command_line: command_line 59 command_line: command_line
60 }).removeOnComplete( true ).save(); 60 }).removeOnComplete( true ).save();
61 61
62 - queue.process('exec_command_line', function(job, done){ 62 + queue.process('exec_command_line' + id, function(job, done){
63 child = queue_helper.exec_command_line(job.data.command_line, done); 63 child = queue_helper.exec_command_line(job.data.command_line, done);
64 }); 64 });
65 65
66 job.on('complete', function() { 66 job.on('complete', function() {
67 /* Listener que dispara quando a requisição ao core finaliza */ 67 /* Listener que dispara quando a requisição ao core finaliza */
68 - // console.log("JOB complete");  
69 child.on('close', function(code, signal) { 68 child.on('close', function(code, signal) {
70 // res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + id + '.webm' }); 69 // res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + id + '.webm' });
71 - db.update(request_object, 'Completed', function(result) {  
72 - }); 70 + db.update(request_object, id, 'Completed', function(result) {});
73 logger.incrementService("outros", "traducoes"); 71 logger.incrementService("outros", "traducoes");
74 }); 72 });
75 73
helpers/core.js
@@ -20,12 +20,12 @@ function call(id, command_line, req, res, Request, request_object) { @@ -20,12 +20,12 @@ function call(id, command_line, req, res, Request, request_object) {
20 // }); 20 // });
21 21
22 var child, 22 var child,
23 - job = queue.create('exec_command_line', { 23 + job = queue.create('exec_command_line' + id, {
24 title: 'Command Line for: ' + req.body.servico, 24 title: 'Command Line for: ' + req.body.servico,
25 command_line: command_line 25 command_line: command_line
26 }).removeOnComplete( true ).save(); 26 }).removeOnComplete( true ).save();
27 27
28 - queue.process('exec_command_line', function(job, done){ 28 + queue.process('exec_command_line' + id, function(job, done){
29 child = queue_helper.exec_command_line(job.data.command_line, done); 29 child = queue_helper.exec_command_line(job.data.command_line, done);
30 if (child === undefined) { 30 if (child === undefined) {
31 throw "Erro ao conectar com o core"; 31 throw "Erro ao conectar com o core";
@@ -41,14 +41,14 @@ function call(id, command_line, req, res, Request, request_object) { @@ -41,14 +41,14 @@ function call(id, command_line, req, res, Request, request_object) {
41 41
42 // Se o core executou com erro 42 // Se o core executou com erro
43 if (code !== 0) { 43 if (code !== 0) {
44 - throw "Erro no retorno do core. Código: " + code;  
45 db.update(Request, request_object.id, 'Error', function (result) { 44 db.update(Request, request_object.id, 'Error', function (result) {
46 }); 45 });
  46 + throw "Erro no retorno do core. Código: " + code;
47 } 47 }
48 48
49 // Se o core executou normal 49 // Se o core executou normal
50 db.update(Request, request_object.id, 'Completed', function (result) { 50 db.update(Request, request_object.id, 'Completed', function (result) {
51 - }); 51 + });
52 res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + id + '.mp4'}); 52 res.send(200, { 'response' : 'http://' + properties.SERVER_IP + ':' + properties.port + '/' + id + '.mp4'});
53 }); 53 });
54 54
helpers/queue.js
@@ -2,7 +2,8 @@ var exec = require('child_process').exec, child; @@ -2,7 +2,8 @@ var exec = require('child_process').exec, child;
2 2
3 exports.exec_command_line = function (command_line, done) { 3 exports.exec_command_line = function (command_line, done) {
4 4
5 - child = exec(command_line, function(err, stdout, stderr) { 5 + // child = exec(command_line, function(err, stdout, stderr) {
  6 + child = exec("curl -O http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_20mb.mp4", function(err, stdout, stderr) {
6 // console.log('Err: ' + err); 7 // console.log('Err: ' + err);
7 // console.log('STDOUT: ' + stdout); 8 // console.log('STDOUT: ' + stdout);
8 // console.log('STDERR: ' + stderr); 9 // console.log('STDERR: ' + stderr);
@@ -20,6 +21,7 @@ exports.exec_command_line = function (command_line, done) { @@ -20,6 +21,7 @@ exports.exec_command_line = function (command_line, done) {
20 21
21 // tentar com isso descomentado no lugar de chamar o done() direto 22 // tentar com isso descomentado no lugar de chamar o done() direto
22 // child.on('close', function(code, signal) { 23 // child.on('close', function(code, signal) {
  24 + // console.log("close com done");
23 // done(); 25 // done();
24 // }); 26 // });
25 done(); 27 done();
logsystem/services.log
@@ -6,8 +6,8 @@ @@ -6,8 +6,8 @@
6 "saude": 0 6 "saude": 0
7 }, 7 },
8 "outros": { 8 "outros": {
9 - "requisicoes": 184,  
10 - "traducoes": 153, 9 + "requisicoes": 200,
  10 + "traducoes": 176,
11 "saude": 0 11 "saude": 0
12 } 12 }
13 } 13 }