add hikari pool to avoid db connection timeout

This commit is contained in:
Σlie *
2026-03-01 22:39:35 +01:00
parent 5246ed5560
commit 281d88d8ae
3 changed files with 56 additions and 76 deletions

View File

@ -1,9 +1,6 @@
package fr.tetelie.crawler;
import io.github.cdimascio.dotenv.Dotenv;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
@ -12,47 +9,40 @@ import org.springframework.scheduling.annotation.EnableScheduling;
@EnableScheduling
public class Crawler {
public static void main(String[] args) {
// Création des instances
// 1. Création des instances (Fidèle à ton code)
new WebScrapper();
new DatabaseConfig();
// Connexion à la base de donnée
// 2. Connexion initiale
boolean isConnected = DatabaseConfig.getInstance().connect();
if(!isConnected){
System.err.println("Impossible de démarrer : BDD injoignable.");
return;
}
// Si pas de connexion à la base de donnée on s'arrête ici
if(!isConnected){return;};
// 3. Setup Environnement et Spring
Dotenv dotenv = Dotenv.configure().ignoreIfMissing().load();
dotenv.entries().forEach(entry -> System.setProperty(entry.getKey(), entry.getValue()));
SpringApplication.run(Crawler.class, args);
// On request les prix de tous les produits et on les inject dans la bdd
//DatabaseConfig.getInstance().updateAllPrices();
// 4. Ta boucle infinie de 24h
while (true) {
System.out.println("Début d'un cycle de mise à jour...");
// On ajoute les images pour les nouveaux produits qui en ont pas encore
System.out.println("--- Début d'un cycle de mise à jour ---");
// Les méthodes récupèrent maintenant une connexion fraîche via le pool
DatabaseConfig.getInstance().updatesAllMissingImages();
// On request les prix de tous les produits et on les inject dans la bdd
DatabaseConfig.getInstance().updateAllPrices();
System.out.println("Cycle terminé. Sommeil de 24 heures...");
try {
// Attend 24 heures avant le prochain scan (en millisecondes)
Thread.sleep(24 * 60 * 60 * 1000);
} catch (InterruptedException e) {
break;
}
try {
// 24 heures de pause
Thread.sleep(24 * 60 * 60 * 1000);
} catch (InterruptedException e) {
System.err.println("Le programme a été interrompu.");
break;
}
}
}
}
}