2023-09-20 18:44:20 +02:00

56 lines
1.3 KiB
TypeScript

import { Service } from "typedi";
import { CronJob } from "cron";
import MailchimpService from "../MailchimpService/MailchimpService";
import FilesService from "../FilesService/FilesService";
import IdNotService from "../IdNotService/IdNotService";
@Service()
export default class CronService {
constructor(private mailchimpService: MailchimpService, private filesService: FilesService, private idNotService: IdNotService) {}
public async sendMails() {
const cronJob = new CronJob("*/15 * * * *", async () => { // Every 15 minutes
try {
await this.mailchimpService.sendEmails();
} catch (e) {
console.error(e);
}
});
// Start job
if (!cronJob.running) {
cronJob.start();
}
}
public async archiveFiles() {
const cronJob = new CronJob("0 0 * * MON", async () => { // Every monday at midnight
try {
await this.filesService.archiveOldFiles();
} catch (e) {
console.error(e);
}
});
// Start job
if (!cronJob.running) {
cronJob.start();
}
}
public async updateUsers() {
const cronJob = new CronJob("0 0 * * *", async () => { // Once a day at midnight
try {
await this.idNotService.updateOffices();
await this.idNotService.updateUsers();
} catch (e) {
console.error(e);
}
});
// Start job
if (!cronJob.running) {
cronJob.start();
}
}
}