UNPKG

@grouparoo/core

Version:
59 lines (58 loc) 2.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ScheduleEnqueueRuns = void 0; const actionhero_1 = require("actionhero"); const Schedule_1 = require("../../models/Schedule"); const clsTask_1 = require("../../classes/tasks/clsTask"); const apiData_1 = require("../../modules/apiData"); const runMode_1 = require("../../modules/runMode"); class ScheduleEnqueueRuns extends clsTask_1.CLSTask { constructor() { super(...arguments); this.name = "schedules:enqueueRuns"; this.description = "check all schedules and run them if it is time"; this.frequency = (0, runMode_1.getGrouparooRunMode)() === "cli:run" ? 0 : 1000 * 60; // Run every minute this.queue = "schedules"; this.inputs = { ignoreDeltas: { required: false, default: false, formatter: apiData_1.APIData.ensureBoolean, }, runIfNotRecurring: { required: false, default: false, formatter: apiData_1.APIData.ensureBoolean, }, scheduleIds: { required: false, formatter: apiData_1.APIData.ensureArray, }, }; } async runWithinTransaction(params) { const ignoreDeltas = params.ignoreDeltas === undefined ? false : params.ignoreDeltas; const runIfNotRecurring = params.runIfNotRecurring === undefined ? false : params.runIfNotRecurring; const where = {}; if (params.scheduleIds) where.id = params.scheduleIds; const schedules = await Schedule_1.Schedule.findAll({ where }); const enqueuedSchedules = []; for (const schedule of schedules) { const shouldRun = await schedule.shouldRun({ ignoreDeltas, runIfNotRecurring, }); if (shouldRun) { await schedule.enqueueRun(); enqueuedSchedules.push(schedule); } } if (enqueuedSchedules.length) { (0, actionhero_1.log)(`Enqueued Runs for Schedules: ${enqueuedSchedules .map((s) => `${s.name} (${s.id})`) .join(", ")}`, (0, runMode_1.getGrouparooRunMode)() === "cli:run" ? "notice" : "info"); } } } exports.ScheduleEnqueueRuns = ScheduleEnqueueRuns;