|
@@ -1,32 +1,27 @@
|
|
|
const mongoose = require('mongoose');
|
|
const mongoose = require('mongoose');
|
|
|
|
|
|
|
|
-// URL de connexion à la base de données
|
|
|
|
|
-const db = 'mongodb://database_preprod:27017/mean-fatboar-db';
|
|
|
|
|
|
|
+// Chaîne de connexion avec authentification (identifiants en clair)
|
|
|
|
|
+const db = 'mongodb://admin:azerty10@database_preprod:27017/mean-fatboar-db?authSource=admin';
|
|
|
|
|
|
|
|
-// Options de connexion améliorées
|
|
|
|
|
const options = {
|
|
const options = {
|
|
|
useNewUrlParser: true,
|
|
useNewUrlParser: true,
|
|
|
useUnifiedTopology: true,
|
|
useUnifiedTopology: true,
|
|
|
- serverSelectionTimeoutMS: 5000, // Timeout avant échec de connexion
|
|
|
|
|
- socketTimeoutMS: 45000, // Ferme les sockets après 45 secondes d'inactivité
|
|
|
|
|
- keepAlive: true, // Garde la connexion active
|
|
|
|
|
- keepAliveInitialDelay: 300000, // Ping tous les 5 minutes (300000 ms)
|
|
|
|
|
- autoIndex: true, // Construit les index automatiquement
|
|
|
|
|
- retryWrites: true, // Réessaie les opérations d'écriture échouées
|
|
|
|
|
- // autoCreate: true, // Crée automatiquement la collection si elle n'existe pas
|
|
|
|
|
|
|
+ serverSelectionTimeoutMS: 5000,
|
|
|
|
|
+ socketTimeoutMS: 45000,
|
|
|
|
|
+ keepAlive: true,
|
|
|
|
|
+ keepAliveInitialDelay: 300000,
|
|
|
|
|
+ autoIndex: true,
|
|
|
|
|
+ retryWrites: true,
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
-// Fonction initiale de connexion
|
|
|
|
|
mongoose.connect(db, options)
|
|
mongoose.connect(db, options)
|
|
|
.then(() => {
|
|
.then(() => {
|
|
|
console.log("Successfully connected to the database.");
|
|
console.log("Successfully connected to the database.");
|
|
|
- // Créer une collection par défaut pour s'assurer que la base reste existante
|
|
|
|
|
mongoose.connection.db.createCollection("app_status", function(err, res) {
|
|
mongoose.connection.db.createCollection("app_status", function(err, res) {
|
|
|
if (err) {
|
|
if (err) {
|
|
|
console.log("Collection déjà existante, ignoré.");
|
|
console.log("Collection déjà existante, ignoré.");
|
|
|
} else {
|
|
} else {
|
|
|
console.log("Collection app_status créée pour maintenir la base de données active.");
|
|
console.log("Collection app_status créée pour maintenir la base de données active.");
|
|
|
- // Insérer un document pour s'assurer que la collection ne soit pas vide
|
|
|
|
|
mongoose.connection.db.collection("app_status").updateOne(
|
|
mongoose.connection.db.collection("app_status").updateOne(
|
|
|
{ name: "system_status" },
|
|
{ name: "system_status" },
|
|
|
{ $set: { name: "system_status", lastChecked: new Date(), status: "active" } },
|
|
{ $set: { name: "system_status", lastChecked: new Date(), status: "active" } },
|
|
@@ -50,10 +45,9 @@ mongoose.connection.on('disconnected', () => {
|
|
|
mongoose.connect(db, options).catch(err => {
|
|
mongoose.connect(db, options).catch(err => {
|
|
|
console.log("Reconnection failed: ", err);
|
|
console.log("Reconnection failed: ", err);
|
|
|
});
|
|
});
|
|
|
- }, 5000); // Réessayer après 5 secondes
|
|
|
|
|
|
|
+ }, 5000);
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
-// Intercepter les signaux d'arrêt pour fermer proprement la connexion
|
|
|
|
|
process.on('SIGINT', () => {
|
|
process.on('SIGINT', () => {
|
|
|
mongoose.connection.close(() => {
|
|
mongoose.connection.close(() => {
|
|
|
console.log('Mongoose connection closed due to app termination');
|
|
console.log('Mongoose connection closed due to app termination');
|
|
@@ -63,6 +57,7 @@ process.on('SIGINT', () => {
|
|
|
|
|
|
|
|
module.exports = mongoose.connection;
|
|
module.exports = mongoose.connection;
|
|
|
|
|
|
|
|
|
|
+
|
|
|
// let min = 999999999;
|
|
// let min = 999999999;
|
|
|
// let max = 10000000000;
|
|
// let max = 10000000000;
|
|
|
// for (i = 0; i < 50000; i++) {
|
|
// for (i = 0; i < 50000; i++) {
|