* first pass * test * test * priority * Reduce boilerplate further * Update server/utils/PluginManager.ts Co-authored-by: Apoorv Mishra <apoorvmishra101092@gmail.com> * fix: matchesNode error in destroyed editor transaction * fix: Individual imported files do not display source correctly in 'Insights' * chore: Add sleep before Slack notification * docs * fix: Error logged about missing plugin.json * Remove email template glob --------- Co-authored-by: Apoorv Mishra <apoorvmishra101092@gmail.com>
34 lines
862 B
TypeScript
34 lines
862 B
TypeScript
import { subDays } from "date-fns";
|
|
import { Op } from "sequelize";
|
|
import Logger from "@server/logging/Logger";
|
|
import { WebhookDelivery } from "@server/models";
|
|
import BaseTask, {
|
|
TaskPriority,
|
|
TaskSchedule,
|
|
} from "@server/queues/tasks/BaseTask";
|
|
|
|
type Props = Record<string, never>;
|
|
|
|
export default class CleanupWebhookDeliveriesTask extends BaseTask<Props> {
|
|
static cron = TaskSchedule.Daily;
|
|
|
|
public async perform() {
|
|
Logger.info("task", `Deleting WebhookDeliveries older than one week…`);
|
|
const count = await WebhookDelivery.unscoped().destroy({
|
|
where: {
|
|
createdAt: {
|
|
[Op.lt]: subDays(new Date(), 7),
|
|
},
|
|
},
|
|
});
|
|
Logger.info("task", `${count} old WebhookDeliveries deleted.`);
|
|
}
|
|
|
|
public get options() {
|
|
return {
|
|
attempts: 1,
|
|
priority: TaskPriority.Background,
|
|
};
|
|
}
|
|
}
|