Files
tcg-server/jobs/jobs.js
yaoyanwei e26f405ea8 1
2025-09-08 16:43:50 +08:00

39 lines
1.1 KiB
JavaScript

const schedule = require('node-schedule');
const ladderModel = require('../ladder/ladder.model');
const ExecuteJobs = async() =>
{
//console.log('Run Hourly Jobs.....');
//Add custom hourly jobs here
};
// Execute leaderboard refresh at specified times: 00:00, 12:00, 18:00, 22:00
const RefreshLeaderboard = async() => {
console.log('Refreshing leaderboard...');
try {
await ladderModel.generateLeaderboard();
console.log('Leaderboard refreshed successfully');
} catch (error) {
console.error('Error refreshing leaderboard:', error);
}
};
exports.InitJobs = function()
{
// Hourly jobs
schedule.scheduleJob('* 1 * * *', function(){ // this for one hour
ExecuteJobs();
});
// Leaderboard refresh jobs at 00:00, 12:00, 18:00, 22:00
schedule.scheduleJob('0 0 * * *', async function() {
const hours = new Date().getHours();
if (hours === 0 || hours === 12 || hours === 18 || hours === 22) {
await RefreshLeaderboard();
}
});
// Test run when starting
ExecuteJobs();
}