39 lines
1.1 KiB
JavaScript
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();
|
|
} |