UNPKG

@grouparoo/core

Version:
40 lines (39 loc) 1.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RecordPropertiesEnqueue = void 0; const actionhero_1 = require("actionhero"); const clsTask_1 = require("../../classes/tasks/clsTask"); const cls_1 = require("../../modules/cls"); const recordProperty_1 = require("../../modules/ops/recordProperty"); const sourcesCache_1 = require("../../modules/caches/sourcesCache"); class RecordPropertiesEnqueue extends clsTask_1.CLSTask { constructor() { super(...arguments); this.name = "recordProperties:enqueue"; this.description = "Enqueue a batch of GrouparooRecords who need a GrouparooRecord Property"; this.frequency = 1000 * 10; this.queue = "recordProperties"; } async runWithinTransaction(params, worker) { let count = 0; const limit = actionhero_1.config.batchSize.recordProperties; const sources = await sourcesCache_1.SourcesCache.findAllWithCache(undefined, "ready"); for (const source of sources) { try { const pendingRecordPropertyIds = await recordProperty_1.RecordPropertyOps.processPendingRecordProperties(source, limit); count = count + pendingRecordPropertyIds.length; } catch (error) { if (actionhero_1.env === "test") console.error(error); // this is a periodic task, and will be retried actionhero_1.api.exceptionHandlers.task(error, this.queue, worker.job, worker.id); } } // re-enqueue if there is more to do if (count > 0) await cls_1.CLS.enqueueTask(this.name, {}); return count; } } exports.RecordPropertiesEnqueue = RecordPropertiesEnqueue;