Skip to content
Snippets Groups Projects
Commit a590d58d authored by Vytor Calixto's avatar Vytor Calixto :space_invader:
Browse files

Better file structure to handle jobs

parent c0882fb3
No related branches found
No related tags found
1 merge request!116Release v1.0.0
Pipeline #
const libs = `${process.cwd()}/libs`;
const config = require(`${libs}/config`);
const Agenda = require('agenda');
const agenda = new Agenda({
db: {
address: config.monq.uri,
collection: 'agendaJobs'}
});
require(`${libs}/jobs/download`)(agenda);
agenda.on('ready', function() {
agenda.start();
});
module.exports = agenda;
const libs = `${process.cwd()}/libs`;
const log = require(`${libs}/log`)(module);
const execQuery = require(`${libs}/db/query_exec`);
const jsonexport = require('jsonexport');
const fs = require('fs');
module.exports = function(agenda) {
agenda.define('download database', (job, done) => {
let sql = job.attrs.data.sql;
execQuery(sql.text, sql.values).then((result) => {
log.debug('Got results');
jsonexport(result, (err, csv) => {
if(err) {
log.error('Error converting to CSV');
log.error(err);
return done(err);
}
log.debug('Converted to csv');
fs.writeFile('out.csv', csv, (err) => {
if(err) {
log.error('Error writing file');
log.error(err);
return done(err);
}
log.info('File created');
done();
});
});
}, (err) => {
log.error('Error getting data from database!');
log.error(err);
return done(err);
});
});
}
......@@ -53,56 +53,13 @@ regionApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => {
next();
}, query, response('region'));
const config = require(`${libs}/config`);
const Agenda = require('agenda');
const execQuery = require(`${libs}/db/query_exec`);
const jsonexport = require('jsonexport');
const fs = require('fs');
let agenda = new Agenda({
db: {
address: config.monq.uri,
collection: 'agendaJobs'}
});
agenda.define('download region', (job, done) => {
log.debug('POPEPO');
console.log('POPEPO');
console.log(job.attrs.data.sql);
let sql = job.attrs.data.sql;
execQuery(sql.text, sql.values).then((result) => {
log.debug(result);
jsonexport(result, (err, csv) => {
if(err) {
log.error('Erro na conversão do json pra csv');
log.error(err);
return done(err);
}
console.log(csv);
fs.writeFile('out.csv', csv, (err) => {
if(err) {
log.error('Erro na escrita do arquivo');
log.error(err);
return done(err);
}
log.info('Criado arquivo');
done();
})
});
}, (error) => {
log.error('Error!');
done(error);
});
});
agenda.on('ready', function() {
agenda.start();
});
regionApp.get('/download', (req, res) => {
req.sql.from('regiao').field('*');
let params = req.sql.toParam();
agenda.now('download region', {sql: params});
res.json({msg: 'Wait for it...'});
});
// const agenda = require(`${libs}/agenda`);
//
// regionApp.get('/download', (req, res) => {
// req.sql.from('regiao').field('*');
// let params = req.sql.toParam();
// agenda.now('download database', {sql: params});
// res.json({msg: 'Wait for it...'});
// });
module.exports = regionApp;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment