evolution #6911
ouvert# PARSE_GED : tester les lus gros fichiers GED. Régler le pb de barre d'évolution. Les get check_status restent bloqués (gestion de priorité ?)
0%
Description
Tester avec couka.ged. Actuellement, pas de bar de progression sur l'upload, pas de barre après.
Un problème de heap trop petite (voir si configuration orientdb optimisé; Constaté sur Arbre thouelin.ged très ancien et peut-être à problème) : semble résolu
Mis à jour par maud Crossonneau il y a plus d'un an
- Sujet changé de PARSE_GED : tester les lus gros fichiers GED. Un problème de heap trop petite (voir si configuration orientdb optimisé; Constaté sur Arbre thouelin.ged très ancien et peut-être à problème) à # PARSE_GED : tester les lus gros fichiers GED. Un problème de heap trop petite (voir si configuration orientdb optimisé; Constaté sur Arbre thouelin.ged très ancien et peut-être à problème)
Mis à jour par sophie Tardivel il y a plus d'un an
- Description mis à jour (diff)
- Statut changé de solved à unsolved
Mis à jour par sophie Tardivel il y a plus d'un an
- Sujet changé de # PARSE_GED : tester les lus gros fichiers GED. Un problème de heap trop petite (voir si configuration orientdb optimisé; Constaté sur Arbre thouelin.ged très ancien et peut-être à problème) à # PARSE_GED : tester les lus gros fichiers GED. Régler le pb de barre d'évolution. Les get check_status restent bloqués (gestion de priorité ?)
- Description mis à jour (diff)
- Priorité changé de Critique à Mineur
Mis à jour par florian Lavazay il y a 11 mois
https://www.npmjs.com/package/memjs memcached pour stocker temporairement la progression
Mis à jour par florian Lavazay il y a 11 mois
const express = require('express');
const memjs = require('memjs');
const app = express();
const mc = memjs.Client.create(process.env.MEMCACHIER_SERVERS || 'localhost:11211');
// Fonction pour mettre à jour la progression
async function updateProgress(fileId, progress) {
try {
await mc.set(`file_progress_${fileId}`, JSON.stringify(progress), {expires: 600}); // expire après 10 minutes
} catch (error) {
console.error('Erreur lors de la mise à jour de la progression:', error);
}
}
// Fonction pour récupérer la progression
async function getProgress(fileId) {
try {
const { value } = await mc.get(`file_progress_${fileId}`);
return value ? JSON.parse(value.toString()) : null;
} catch (error) {
console.error('Erreur lors de la récupération de la progression:', error);
return null;
}
}
// Simuler l'analyse d'un fichier
async function analyzeFile(fileId) {
for (let i = 0; i <= 100; i += 10) {
await updateProgress(fileId, { progress: i });
await new Promise(resolve => setTimeout(resolve, 1000)); // Attendre 1 seconde
}
}
// Route pour démarrer l'analyse
app.get('/start-analysis/:fileId', (req, res) => {
const fileId = req.params.fileId;
analyzeFile(fileId);
res.json({ message: 'Analyse démarrée' });
});
// Route pour obtenir la progression
app.get('/progress/:fileId', async (req, res) => {
const fileId = req.params.fileId;
const progress = await getProgress(fileId);
res.json(progress || { progress: 0 });
});
const PORT = process.env.PORT || 3000;
app.listen(PORT, () => {
console.log(`Serveur en écoute sur le port ${PORT}`);
});
L'ia conseille aussi socket io
Mis à jour par sophie Tardivel il y a 2 mois
- Tracker changé de anomaly à evolution
- Projet changé de 112 à geneafinder_v7_maintenance