UNPKG

@splitsoftware/splitio-commons

Version:
23 lines (22 loc) 1.21 kB
import { SUBMITTERS_PUSH_FULL_QUEUE } from '../../logger/constants'; import { submitterFactory } from './submitter'; var UNIQUE_KEYS_RATE = 900000; // 15 minutes /** * Submitter that periodically posts impression counts */ export function uniqueKeysSubmitterFactory(params) { var _a = params.settings, log = _a.log, key = _a.core.key, _b = params.serviceApi, postUniqueKeysBulkCs = _b.postUniqueKeysBulkCs, postUniqueKeysBulkSs = _b.postUniqueKeysBulkSs, uniqueKeys = params.storage.uniqueKeys; var isClientSide = key !== undefined; var postUniqueKeysBulk = isClientSide ? postUniqueKeysBulkCs : postUniqueKeysBulkSs; var syncTask = submitterFactory(log, postUniqueKeysBulk, uniqueKeys, UNIQUE_KEYS_RATE); // register unique keys submitter to be executed when uniqueKeys cache is full uniqueKeys.setOnFullQueueCb(function () { if (syncTask.isRunning()) { log.info(SUBMITTERS_PUSH_FULL_QUEUE, [uniqueKeys.name]); syncTask.execute(); } // If submitter is stopped (e.g., user consent declined or unknown, or app state offline), we don't send the data. // Data will be sent when submitter is resumed. }); return syncTask; }