32 lines
1.5 KiB
JavaScript
32 lines
1.5 KiB
JavaScript
const { registerBackgroundTaskHandlers } = require('./background-task-handlers');
|
|
const { registerBackgroundTaskScheduling } = require('./background-task-scheduling');
|
|
|
|
function createBackgroundTaskSetup(options) {
|
|
const pool = options && options.pool;
|
|
const common = options && options.common;
|
|
const backgroundTaskQueue = options && options.backgroundTaskQueue;
|
|
const collectUploadPathsFromDirectory = options && options.collectUploadPathsFromDirectory;
|
|
const removeUnusedUploadFiles = options && options.removeUnusedUploadFiles;
|
|
const refreshApiSource = options && options.refreshApiSource;
|
|
const refreshRssFeed = options && options.refreshRssFeed;
|
|
const uploadsDir = String(options && options.uploadsDir || '').trim();
|
|
const dataSourceStartupRefreshStaggerMs = Math.max(100, Number(options && options.dataSourceStartupRefreshStaggerMs || 250));
|
|
|
|
if (!pool || !common || !backgroundTaskQueue || !collectUploadPathsFromDirectory || !removeUnusedUploadFiles || !refreshApiSource || !refreshRssFeed || !uploadsDir) {
|
|
throw new Error('createBackgroundTaskSetup requires the background task dependencies.');
|
|
}
|
|
|
|
async function initialize() {
|
|
registerBackgroundTaskHandlers(options);
|
|
const backgroundTaskScheduling = registerBackgroundTaskScheduling(options);
|
|
if (backgroundTaskScheduling && typeof backgroundTaskScheduling.initialize === 'function') {
|
|
await backgroundTaskScheduling.initialize();
|
|
}
|
|
}
|
|
|
|
return {
|
|
initialize: initialize
|
|
};
|
|
}
|
|
|
|
module.exports = { createBackgroundTaskSetup }; |