@grouparoo/core
Version:
The Grouparoo Core
40 lines (39 loc) • 1.77 kB
JavaScript
;
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;