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("*/15 * * * *", async () => { // Every 15 minutes try { await this.idNotService.updateOffices(); await this.idNotService.updateUsers(); } catch (e) { console.error(e); } }); // Start job if (!cronJob.running) { cronJob.start(); } } }