3.3 KiB
Дополнение к заданию для AI-агента
Задача: Добавить автоматический запуск парсера каждые 30 минут.
[cite_start]Контекст: Согласно техническому заданию, сбор данных должен происходить автоматически и регулярно, чтобы обеспечивать актуальность информации в системе[cite: 47, 93].
Реализация в Spring Boot
Для реализации этой задачи необходимо использовать встроенный в Spring механизм планировщика задач (Task Scheduler).
-
Включить планировщик: В главном классе приложения (с аннотацией
@SpringBootApplication) необходимо добавить аннотацию@EnableScheduling. -
Запланировать выполнение метода: В сервисе
KursivParserService, над методом, который запускает процесс парсинга, нужно добавить аннотацию@Scheduled. Для запуска каждые 30 минут можно использоватьcronвыражение.
Пример кода:
1. Главный класс приложения:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication
@EnableScheduling // <-- ДОБАВИТЬ ЭТУ АННОТАЦИЮ
public class MarketingAnalyticsApplication {
public static void main(String[] args) {
SpringApplication.run(MarketingAnalyticsApplication.class, args);
}
}
2. Сервис-парсер:
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
@Service
public class KursivParserService {
// ... здесь существующий код и зависимости (MongoTemplate и т.д.)
@Scheduled(cron = "0 0/30 * * * ?") // <-- ДОБАВИТЬ ЭТУ АННОТАЦИЮ
public void parseAndStoreNews() {
System.out.println("Запуск планового парсинга новостей с Kursiv.media...");
// ... здесь вся логика парсинга, которая уже написана
}
}
Объяснение cron = "0 0/30 * * * ?": Эта настройка означает, что метод parseAndStoreNews() будет запускаться в 0 и 30 минут каждого часа, каждый день. Это в точности соответствует требованию ТЗ.
Критерии выполнения:
- После запуска приложения, парсер автоматически начинает свою работу в ближайшие 0 или 30 минут часа.
- В логах приложения видно, что метод парсинга вызывается каждые полчаса без какого-либо ручного вмешательства.