cron-tasks.ts
1 import { DateTime } from "luxon"; 2 import pMap from "p-map"; 3 4 export default { 5 /** 6 * Send event recap to creators 7 * Everyday at 08:00 8 */ 9 "0 8 * * *": async ({ strapi }) => { 10 const events = await strapi.entityService.findMany("api::event.event", { 11 filters: { 12 date: { 13 $gte: DateTime.now().toISODate(), 14 }, 15 }, 16 limit: -1, 17 }); 18 19 await pMap(events, strapi.service("api::event.event").sendDailyRecap, { 20 concurrency: 5, 21 }); 22 }, 23 /** 24 * Send event recap when it has ended 25 * Only to events with a provided 'date' field 26 * Everyday at 08:30 27 */ 28 "30 8 * * *": async ({ strapi }) => { 29 const events = await strapi.entityService.findMany("api::event.event", { 30 filters: { 31 date: { 32 $eq: DateTime.now().minus({ day: 1 }).toISODate(), 33 }, 34 }, 35 populate: ["travels", "passengers", "passengers.travel"], 36 limit: -1, 37 }); 38 await pMap(events, strapi.service("api::event.event").sendEndRecap, { 39 concurrency: 5, 40 }); 41 }, 42 };