|
|
@@ -1,8 +1,13 @@
|
|
|
const axios = require('axios');
|
|
|
const Logs = require('../libs/logs');
|
|
|
+const Cache = require('../libs/cache');
|
|
|
const Setting = require('./Setting');
|
|
|
const { eventSolutions } = require('../triangle/eventSolutions');
|
|
|
const { calcTotalProfit, calcTotalProfitWithFixedFirst } = require('../triangle/totalProfitCalc');
|
|
|
+const fs = require('fs');
|
|
|
+const path = require('path');
|
|
|
+
|
|
|
+const GamesCacheFile = path.join(__dirname, '../data/games.cache');
|
|
|
|
|
|
const childOptions = process.env.NODE_ENV == 'development' ? {
|
|
|
execArgv: ['--inspect=9228'],
|
|
|
@@ -759,6 +764,45 @@ Setting.onUpdate(fields => {
|
|
|
postDataToChild('updateSetting', fields);
|
|
|
});
|
|
|
|
|
|
+/**
|
|
|
+ * 保存GAMES数据到缓存文件
|
|
|
+ */
|
|
|
+const saveGamesToCache = () => {
|
|
|
+ Cache.setData(GamesCacheFile, GAMES, err => {
|
|
|
+ if (err) {
|
|
|
+ Logs.out('Failed to save games cache:', err.message);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ Logs.out('Games cache saved successfully');
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 从缓存文件加载GAMES数据
|
|
|
+ */
|
|
|
+const loadGamesFromCache = () => {
|
|
|
+ const gamesCacheData = Cache.getData(GamesCacheFile, true);
|
|
|
+ Object.assign(GAMES, gamesCacheData);
|
|
|
+ Logs.out('Games cache loaded successfully');
|
|
|
+}
|
|
|
+
|
|
|
+// 在模块加载时尝试从缓存恢复数据
|
|
|
+loadGamesFromCache();
|
|
|
+
|
|
|
+// 监听进程退出事件,保存GAMES数据
|
|
|
+process.on('exit', saveGamesToCache);
|
|
|
+process.on('SIGINT', () => {
|
|
|
+ process.exit(0);
|
|
|
+});
|
|
|
+process.on('SIGTERM', () => {
|
|
|
+ process.exit(0);
|
|
|
+});
|
|
|
+process.on('SIGUSR2', () => {
|
|
|
+ process.exit(0);
|
|
|
+});
|
|
|
+
|
|
|
+
|
|
|
module.exports = {
|
|
|
updateLeaguesList, getFilteredLeagues,
|
|
|
updateGamesList, updateGamesEvents,
|