
В версии TopSite 4.10 появился механизм автоматических сохранений частично выполненных задач.
Механизм самостоятельно создаёт точки сохранения по мере успешного выполнения частей длительной задачи. Если задача в итоге не выполнится до конца и завершится с ошибкой, то при следующем запуске она начнёт выполняться не с начала, как раньше, а продолжит работу с последней точки сохранения.
Это позволяет повысить живучесть алгоритмов сбора данных во время больших нагрузок, когда источник данных выдаёт нестабильные результаты.
Есть много типов задач, для выполнения которых требуется сделать множество запросов. Например, при сканировании страниц поисковой выдачи на определённую глубину поисковая система может выдавать по 10 результатов на страницу, а просканировать требуется до 100-й позиции. В этом случае необходимо обработать до 10 страниц.
Если первые 4 страницы были успешно обработаны, а на 5-й возникла ошибка, которая привела к сбросу всей задачи, информация, собранная с первых четырёх страниц, сохраняется в специальном временном хранилище.
При последующем запуске той же задачи информация о четырёх уже обработанных страницах извлекается из хранилища, и обработка продолжается с 5-й страницы. Если снова возникнет ошибка, уже собранные и оплаченные данные снова сохраняются. Так продолжается до тех пор, пока задача не завершится успешно либо не истечёт срок хранения временных данных.
Важно: данный механизм не является кешем. Он не предназначен для кеширования уже полученных данных. Сохранение выполняется только при неудачном завершении задачи, чтобы не потерять уже накопленный результат. Это позволяет экономить запросы и, соответственно, уменьшать расходы на сбор данных.
После успешного завершения задачи все связанные с ней временные данные удаляются. Для задач, завершившихся успешно с первого раза, сохранения вообще не создаются.
Во время работы программы временное хранилище размещается в оперативной памяти. При закрытии программы данные сохраняются в специальный временный файл checkpoints.dbi в папке данных программы для браузеров. При следующем запуске программы данные снова загружаются в оперативную память.
Максимальный размер хранилища и срок хранения данных можно изменить в настройках программы на вкладке «Общие». Там же механизм можно полностью отключить.
По результатам предварительного тестирования, использование точек сохранения позволяет пользователям экономить тысячи запросов ежедневно.