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()
|
||||
|
||||
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();
|
||||
|
||||
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