Я использую Quartz.NET для планирования задания, которое загружает кучу данных из внешних источников и сохраняется в базе данных. После их загрузки также необходимо выполнить некоторую обработку, которая создаст дополнительные записи в другой таблице в базе данных.
Задание загрузчика является заданием с состоянием и выполняется каждую минуту. Проблема, с которой я столкнулся, заключается в том, что после загрузки данных обработка может занять гораздо больше времени, чем я ожидал.
Как мне это сделать? Я думал о создании другой работы (которая будет выполняться только один раз), когда загрузка данных закончится. В этом случае задание загрузчика может запускаться каждую минуту (это был первоначальный план), поскольку загрузка занимает всего 5-20 секунд, а другое задание может обрабатывать эти записи после завершения загрузки. Задание обработчика получит записи, помеченные как необработанные, из базы данных и выполнит работу с ними.
Это правильный подход к обработке? Другая идея, которая пришла мне в голову, - создать службу WCF, которая будет обрабатывать один загруженный элемент. Это будет вызываться для каждого загруженного элемента. Однако я не думаю, что это будет работать лучше, чем другой подход к работе.