implementing cron
This commit is contained in:
10
src/cron.js
Normal file
10
src/cron.js
Normal 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)
|
||||||
|
}
|
||||||
@@ -1,11 +1,15 @@
|
|||||||
require('dotenv').config()
|
require('dotenv').config()
|
||||||
|
|
||||||
const dgram = require('dgram');
|
const dgram = require('dgram');
|
||||||
const server = dgram.createSocket('udp4');
|
|
||||||
const app = require('./app')
|
const app = require('./app')
|
||||||
|
const cron = require('./cron')
|
||||||
|
|
||||||
|
cron()
|
||||||
|
|
||||||
const PORT = process.env.PORT
|
const PORT = process.env.PORT
|
||||||
|
|
||||||
|
const server = dgram.createSocket('udp4');
|
||||||
|
|
||||||
server.on('error', (err) => {
|
server.on('error', (err) => {
|
||||||
console.log(`Server error:\n${err.stack}`);
|
console.log(`Server error:\n${err.stack}`);
|
||||||
server.close();
|
server.close();
|
||||||
|
|||||||
20
src/use-cases/update-categories-use-case.js
Normal file
20
src/use-cases/update-categories-use-case.js
Normal 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 }
|
||||||
|
|
||||||
Reference in New Issue
Block a user