Centralize periodic checks for mutes, tempbans, vcalerts, reminders, and scheduled posts

This should result in a significant performance improvement.
The new method is also more precise than the old one, allowing
the aforementioned checks to be performed with second-precision.
This commit is contained in:
Dragory 2021-09-25 21:33:59 +03:00
parent c84d1a0be1
commit c7751a9da1
No known key found for this signature in database
GPG key ID: 5F387BA66DF8AAC1
55 changed files with 883 additions and 366 deletions

View file

@ -0,0 +1,30 @@
import { MigrationInterface, QueryRunner, TableIndex } from "typeorm";
export class SplitScheduledPostsPostAtIndex1632582078622 implements MigrationInterface {
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.dropIndex("scheduled_posts", "IDX_c383ecfbddd8b625a0912ded3e");
await queryRunner.createIndex(
"scheduled_posts",
new TableIndex({
columnNames: ["guild_id"],
}),
);
await queryRunner.createIndex(
"scheduled_posts",
new TableIndex({
columnNames: ["post_at"],
}),
);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.dropIndex("scheduled_posts", "IDX_e3ce9a618354f29256712abc5c");
await queryRunner.dropIndex("scheduled_posts", "IDX_b30f532b58ec5caf116389486f");
await queryRunner.createIndex(
"scheduled_posts",
new TableIndex({
columnNames: ["guild_id", "post_at"],
}),
);
}
}

View file

@ -0,0 +1,16 @@
import { MigrationInterface, QueryRunner, TableIndex } from "typeorm";
export class AddIndexToRemindersRemindAt1632582299400 implements MigrationInterface {
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.createIndex(
"reminders",
new TableIndex({
columnNames: ["remind_at"],
}),
);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.dropIndex("reminders", "IDX_6f4e1a9db3410c43c7545ff060");
}
}