32 lines
1.0 KiB
JavaScript
32 lines
1.0 KiB
JavaScript
const TASK = {
|
|
key: 'onboarding-device-prune',
|
|
title: 'Onboarding device prune',
|
|
category: 'cleanup',
|
|
trigger: 'scheduled recurring task, hourly',
|
|
purpose: 'remove stale onboarding device bindings that have been idle for more than one minute.',
|
|
taskType: 'recurring-run',
|
|
intervalMs: 60 * 60 * 1000
|
|
};
|
|
|
|
function registerOnboardingDevicePruneTask(options) {
|
|
const backgroundTaskQueue = options && options.backgroundTaskQueue;
|
|
const pool = options && options.pool;
|
|
const common = options && options.common;
|
|
|
|
if (!backgroundTaskQueue || !pool || !common || typeof common.pruneStaleOnboardingDevices !== 'function') {
|
|
throw new Error('registerOnboardingDevicePruneTask requires the onboarding prune dependencies.');
|
|
}
|
|
|
|
backgroundTaskQueue.registerRecurringTask({
|
|
key: TASK.key,
|
|
title: TASK.title,
|
|
category: TASK.category,
|
|
intervalMs: TASK.intervalMs,
|
|
metadata: {},
|
|
run: async function () {
|
|
await common.pruneStaleOnboardingDevices(pool);
|
|
}
|
|
});
|
|
}
|
|
|
|
module.exports = { registerOnboardingDevicePruneTask }; |