Commit 388f5560f143f95b2b727091923d94303602ed43
1 parent
ff7e8b3f
Exists in
master
and in
1 other branch
servico de texto agora usa queue
Showing
1 changed file
with
46 additions
and
16 deletions
Show diff stats
endpoints/texto.js
| 1 | var parameters = require('../helpers/parameters'); | 1 | var parameters = require('../helpers/parameters'); |
| 2 | var properties = require('../helpers/properties'); | 2 | var properties = require('../helpers/properties'); |
| 3 | +var queue_helper = require('../helpers/queue'); | ||
| 3 | var db = require('../db/api'); | 4 | var db = require('../db/api'); |
| 4 | var exec = require('child_process').exec, child; | 5 | var exec = require('child_process').exec, child; |
| 5 | var uuid = require('node-uuid'); | 6 | var uuid = require('node-uuid'); |
| 6 | var fs = require('fs'); | 7 | var fs = require('fs'); |
| 8 | +var kue = require('kue'), | ||
| 9 | + queue = kue.createQueue(); | ||
| 7 | 10 | ||
| 8 | function init(req, res, Request) { | 11 | function init(req, res, Request) { |
| 9 | 12 | ||
| @@ -38,29 +41,56 @@ function init(req, res, Request) { | @@ -38,29 +41,56 @@ function init(req, res, Request) { | ||
| 38 | }); | 41 | }); |
| 39 | 42 | ||
| 40 | /* Cria a linha de comando */ | 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 | id + ' ' + parameters.getTransparency(req.body.transparencia) + ' ' + id + ' WEB > /tmp/core_log 2>&1'; | 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 | /* Executa a linha de comando */ | 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 | module.exports.init = init; | 96 | module.exports.init = init; |