Skip to content

Commit 0044d26

Browse files
committed
chore: bg-task optimization
1 parent 6d8ce53 commit 0044d26

File tree

2 files changed

+28
-22
lines changed

2 files changed

+28
-22
lines changed

server.js

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ const logger = new Logger();
2323
await initApp();
2424
await connectDB();
2525
await associateModels();
26+
await jobs();
2627

2728
// Create server for Express API and WebSockets
2829
const server = http.createServer();

utils/jobs.js

+27-22
Original file line numberDiff line numberDiff line change
@@ -6,30 +6,35 @@ const Logger = require('./Logger');
66
const loadConfig = require('./loadConfig');
77
const logger = new Logger();
88

9-
// Update weather data every 15 minutes
10-
const weatherJob = schedule.scheduleJob(
11-
'updateWeather',
12-
'0 */15 * * * *',
13-
async () => {
14-
const { WEATHER_API_KEY: secret } = await loadConfig();
9+
module.exports = async function () {
10+
const { WEATHER_API_KEY } = await loadConfig();
11+
const FEAT_WHEATHER_ENABLED = WEATHER_API_KEY != '';
1512

16-
try {
17-
const weatherData = await getExternalWeather();
13+
if (FEAT_WHEATHER_ENABLED) {
14+
// Update weather data every 15 minutes
15+
const weatherJob = schedule.scheduleJob(
16+
'updateWeather',
17+
'0 */15 * * * *',
18+
async () => {
19+
try {
20+
const weatherData = await getExternalWeather();
1821

19-
Sockets.getSocket('weather').socket.send(JSON.stringify(weatherData));
20-
} catch (err) {
21-
if (secret) {
22-
logger.log(err.message, 'ERROR');
22+
Sockets.getSocket('weather').socket.send(JSON.stringify(weatherData));
23+
} catch (err) {
24+
if (WEATHER_API_KEY) {
25+
logger.log(err.message, 'ERROR');
26+
}
27+
}
2328
}
24-
}
25-
}
26-
);
29+
);
2730

28-
// Clear old weather data every 4 hours
29-
const weatherCleanerJob = schedule.scheduleJob(
30-
'clearWeather',
31-
'0 5 */4 * * *',
32-
async () => {
33-
clearWeatherData();
31+
// Clear old weather data every 4 hours
32+
const weatherCleanerJob = schedule.scheduleJob(
33+
'clearWeather',
34+
'0 5 */4 * * *',
35+
async () => {
36+
clearWeatherData();
37+
}
38+
);
3439
}
35-
);
40+
};

0 commit comments

Comments
 (0)