add hikari pool to avoid db connection timeout
This commit is contained in:
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user