/
review
/
bot
Обзор
Документация
Войти
/
review
/
bot
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
main
src/services/completedTasks/methods/setup.ts
48 строк
2 KB
Semyon Okulov
init
28 июл 2025, 09:49
28 июл 2025, 09:49
874de44
Код
Авторство
О чём код?
import type { CompletedTasks } from '../completedTasks' import { logger } from '@utils' /** * Получает завершённые задачи из Weeek API и сохраняет их. * * Процесс: * 1. Постранично получает завершённые задачи с помощью Weeek API * 2. Для каждой задачи вызывает метод `save` * 3. Повторяет, пока есть ещё задачи (hasMore === true) * * Обработка ошибок: * - Логирует все ошибки * - Гарантирует завершение процесса через `finally` */ export async function setup(this: CompletedTasks) { const perPage = 20 let offset = 0 let hasMore = true try { while (hasMore) { // Получение очередной страницы задач const { tasks, hasMore: more } = await this.weeekApi.getCompletedTasks( offset, perPage ) if (tasks.length === 0) { break } // Последовательное сохранение задач (можно заменить на параллельное) for (const t of tasks) { await this.save(t) } // await Promise.all(tasks.map((t) => this.save(t))); offset += tasks.length hasMore = more } } catch (err) { logger.error(err, 'Ошибка при обработке завершённых задач') } finally { logger.info('Завершена обработка завершённых задач') } }