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())));