implementing cron

This commit is contained in:
daniel muniz
2024-07-24 19:42:14 -03:00
parent 7f59ce78bc
commit 5fbeb896c5
3 changed files with 35 additions and 1 deletions

10
src/cron.js Normal file
View File

@@ -0,0 +1,10 @@
const { UpdateCategoriesUseCase } = require('./use-cases/update-categories-use-case')
const updateCategories = new UpdateCategoriesUseCase()
module.exports = async function cron() {
const oneDay = 1000 * 60 * 60 * 24
setImmediate(() => {
updateCategories.execute()
}, oneDay)
}

View File

@@ -1,11 +1,15 @@
require('dotenv').config()
const dgram = require('dgram');
const server = dgram.createSocket('udp4');
const app = require('./app')
const cron = require('./cron')
cron()
const PORT = process.env.PORT
const server = dgram.createSocket('udp4');
server.on('error', (err) => {
console.log(`Server error:\n${err.stack}`);
server.close();

View File

@@ -0,0 +1,20 @@
const { exec } = require("node:child_process")
class UpdateCategoriesUseCase {
execute() {
return new Promise((_, reject) => {
exec(`bin/gcf1dbmng.sh etc urldb_update`, { cwd: '/usr/local/gcf1' }, (error, stdout, stderr) => {
if (error) {
console.error(error);
reject(error);
return;
}
console.log(stdout)
});
});
}
}
module.exports = { UpdateCategoriesUseCase }