41 lines
923 B
TypeScript
41 lines
923 B
TypeScript
import { Service } from "typedi";
|
|
import { CronJob } from "cron";
|
|
import MailchimpService from "../MailchimpService/MailchimpService";
|
|
import FilesService from "../FilesService/FilesService";
|
|
|
|
|
|
@Service()
|
|
export default class CronService {
|
|
constructor(private mailchimpService: MailchimpService, private filesService: FilesService) {}
|
|
|
|
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();
|
|
}
|
|
}
|
|
}
|