import { beforeShutdown } from '@/misc/before-shutdown.js'; import FederationChart from './charts/federation.js'; import NotesChart from './charts/notes.js'; import UsersChart from './charts/users.js'; import ActiveUsersChart from './charts/active-users.js'; import InstanceChart from './charts/instance.js'; import PerUserNotesChart from './charts/per-user-notes.js'; import DriveChart from './charts/drive.js'; import PerUserReactionsChart from './charts/per-user-reactions.js'; import HashtagChart from './charts/hashtag.js'; import PerUserFollowingChart from './charts/per-user-following.js'; import PerUserDriveChart from './charts/per-user-drive.js'; import ApRequestChart from './charts/ap-request.js'; export const federationChart = new FederationChart(); export const notesChart = new NotesChart(); export const usersChart = new UsersChart(); export const activeUsersChart = new ActiveUsersChart(); export const instanceChart = new InstanceChart(); export const perUserNotesChart = new PerUserNotesChart(); export const driveChart = new DriveChart(); export const perUserReactionsChart = new PerUserReactionsChart(); export const hashtagChart = new HashtagChart(); export const perUserFollowingChart = new PerUserFollowingChart(); export const perUserDriveChart = new PerUserDriveChart(); export const apRequestChart = new ApRequestChart(); const charts = [ federationChart, notesChart, usersChart, activeUsersChart, instanceChart, perUserNotesChart, driveChart, perUserReactionsChart, hashtagChart, perUserFollowingChart, perUserDriveChart, apRequestChart, ]; // 20分おきにメモリ情報をDBに書き込み setInterval(() => { for (const chart of charts) { chart.save(); } }, 1000 * 60 * 20); beforeShutdown(() => Promise.all(charts.map(chart => chart.save())));