Files
marketing-parser/ДОП_ТЗ.md
T
2025-09-14 10:13:50 +05:00

65 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
### Дополнение к заданию для AI-агента
**Задача:** Добавить автоматический запуск парсера каждые 30 минут.
[cite\_start]**Контекст:** Согласно техническому заданию, сбор данных должен происходить автоматически и регулярно, чтобы обеспечивать актуальность информации в системе[cite: 47, 93].
---
### Реализация в Spring Boot
Для реализации этой задачи необходимо использовать встроенный в Spring механизм планировщика задач (Task Scheduler).
1. **Включить планировщик:** В главном классе приложения (с аннотацией `@SpringBootApplication`) необходимо добавить аннотацию `@EnableScheduling`.
2. **Запланировать выполнение метода:** В сервисе `KursivParserService`, над методом, который запускает процесс парсинга, нужно добавить аннотацию `@Scheduled`. Для запуска каждые 30 минут можно использовать `cron` выражение.
---
### Пример кода:
**1. Главный класс приложения:**
```java
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. Сервис-парсер:**
```java
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 минут часа.
- В логах приложения видно, что метод парсинга вызывается каждые полчаса без какого-либо ручного вмешательства.