Le fichier filequeue.hpp fixe les prototypes des structures et classes utilisées :
#include <QCoreApplication>
#include <QThread>
#include "jmp.hpp"
#include "filequeue.hpp"
QString QUEUE_PATH = "/home/jm/aaa/queue";
/**
* @brief runProducer Lancement de la prodcution de fichiers par un thread dédié (méthode Producer::process()).
*/
QThread* runProducer(Producer** ppProducer) {
QThread* pThread = new QThread;
*ppProducer = new Producer("Producteur N°1", QUEUE_PATH, 100);
// Changement d'affinité du producteur
(*ppProducer)->moveToThread(pThread);
// Démarrage du thread (ne démarre pas la production)
pThread->start();
Log::getInstance().info("Thread producteur lancé...");
// Exécution de la méthode process() du producteur sur le thread dédié
QMetaObject::invokeMethod(*ppProducer, "process");
Log::getInstance().info("Production des fichiers activée...");
// Retour
return pThread;
}
QThread* runFilesQueue(FilesQueue** ppQueue) {
QThread* pThread = new QThread;
*ppQueue = new FilesQueue(QUEUE_PATH, QList<ConsumerEntry>(), false);
// Changement d'affinité du producteur
(*ppQueue)->moveToThread(pThread);
// Démarrage du thread (ne démarre pas la production)
pThread->start();
Log::getInstance().info("Thread de la file d'attente lancé...");
// Exécution de la méthode process() de la file d'attente sur le thread dédié
QMetaObject::invokeMethod(*ppQueue, "process");
Log::getInstance().info("File d'attente activée...");
// Retour
return pThread;
}
QThread* runConsumer(Consumer** ppConsumer, FilesQueue* pQueue) {
QThread* pThread = new QThread;
*ppConsumer = new Consumer(pQueue, "Conso 1");
// Changement d'affinité du producteur
(*ppConsumer)->moveToThread(pThread);
// Ajout du consommateur à la queue
pQueue->appendConsumer(*ppConsumer);
// Démarrage du thread (ne démarre pas la consommation mais change l'afficnité de l'objet consommateur)
pThread->start();
Log::getInstance().info("Thread du consommateur lancé...");
// Exécution de la méthode process() du consommateur sur le thread dédié
QMetaObject::invokeMethod(*ppConsumer, "process");
Log::getInstance().info("Consommateur activé...");
// Retour
return pThread;
}
/**
* @brief main Ce programme active une file d'attente disque (classe FilesQueue).
* Cette file est alimentée par un thread "producteur" et elle signale un thread "consommateur" dont le slot
* consomme le fichier.
* @param argc
* @param argv
* @return
*/
int main(int argc, char *argv[]) {
QCoreApplication a(argc, argv);
// Création d'un chronomètre d'arrêt du producteur (non lancé à ce stade)
QTimer* pTimer = new QTimer;
pTimer->setSingleShot(true);
// Lancement de la file d'attente
FilesQueue* pQueue = nullptr;
QThread* pThreadQueue = runFilesQueue(&pQueue);
// Lancement du producteur
Producer* pProducer = nullptr;
QThread* pThreadProd = runProducer(&pProducer);
QObject::connect(pTimer, &QTimer::timeout, pProducer, &Producer::onQuit);
// Lancement du consommateur
Consumer* pConsumer = nullptr;
QThread* pThreadCons = runConsumer(&pConsumer, pQueue);
// Détection du tic du chronomètre d'arrêt
QObject::connect(pTimer, &QTimer::timeout, [] () {
Log::getInstance().info("Tic chronomètre reçu...");
});
// Mécanisme d'arrêt en cascade en commeçant par l'arrêt du producteur
QObject::connect(pThreadProd, &QThread::finished, [pThreadQueue, pThreadCons]() {
Log::getInstance().info("> [QThread::finished] Thread d'affinité du producteur achevé...");
pThreadCons->quit();
pThreadQueue->quit();
});
QObject::connect(pThreadCons, &QThread::finished, []() {
Log::getInstance().info("> [QThread::finished] Thread d'affinité du consommateur achevé...");
});
QObject::connect(pThreadQueue, &QThread::finished, [&a]() {
Log::getInstance().info("> [QThread::finished] Thread d'affinité de la file d'attente achevé...");
a.quit();
});
// Lancement du chronètre d'arrêt
pTimer->start(30000);
// Boucle évènementielle du programme console (attente passive)
QCoreApplication::exec();
// Purge
Log::getInstance().info(QString("Nombre de fichiers dans la file d'attente avant sa suppression : %1")
.arg(pQueue->size()));
pTimer->deleteLater();
pProducer->deleteLater();
pThreadProd->deleteLater();
pQueue->deleteLater();
pThreadQueue->deleteLater();
Log::getInstance().info("Programme achevé.");
return 0;
}
Remarquez que les classes susceptibles de voir modifier leur thread d'affinité ont toutes une méthode
process().
Cette méthode devrait être invoquée aaprès que l'on ait modifié le thead d'affinité de l'objet.
On s'assure ainsi que tous les objets créés dans la méthode process on également ce thread comme
thread d'affinté.
Ces méthodes process() sont précédées de la macro Q_INVOKABLE qui permet de
les invoquer par leut nom depuis n'importe quel thread via la méthode
QMetaObject::invoke().
Toute la communication inter-threads se fait au moyen du mécanisme signal/slot.
Seul le producteur (classe Producer) n'émet pas de signal.
Voici la fonction main qui montre clairement l'organisation des traitements :
#include <QCoreApplication>
#include <QThread>
#include "jmp.hpp"
#include "filequeue.hpp"
QString QUEUE_PATH = "/home/jm/aaa/queue";
/**
* @brief runProducer Lancement de la prodcution de fichiers par un thread dédié (méthode Producer::process()).
*/
QThread* runProducer(Producer** ppProducer) {
QThread* pThread = new QThread;
*ppProducer = new Producer("Producteur N°1", QUEUE_PATH);
// Changement d'affinité du producteur
(*ppProducer)->moveToThread(pThread);
// Démarrage du thread (ne démarre pas la production)
pThread->start();
Log::getInstance().info("Thread producteur lancé...");
// Exécution de la méthode process() du producteur sur le thread dédié
QMetaObject::invokeMethod(*ppProducer, "process");
Log::getInstance().info("Production des fichiers activée...");
// Retour
return pThread;
}
QThread* runFilesQueue(FilesQueue** ppQueue) {
QThread* pThread = new QThread;
*ppQueue = new FilesQueue(QUEUE_PATH, QList<ConsumerEntry>(), false);
// Changement d'affinité du producteur
(*ppQueue)->moveToThread(pThread);
// Démarrage du thread (ne démarre pas la production)
pThread->start();
Log::getInstance().info("Thread de la file d'attente lancé...");
// Exécution de la méthode process() de la file d'attente sur le thread dédié
QMetaObject::invokeMethod(*ppQueue, "process");
Log::getInstance().info("File d'attente activée...");
// Retour
return pThread;
}
QThread* runConsumer(Consumer** ppConsumer, FilesQueue* pQueue) {
QThread* pThread = new QThread;
*ppConsumer = new Consumer(pQueue, "Conso 1");
// Changement d'affinité du producteur
(*ppConsumer)->moveToThread(pThread);
// Démarrage du thread (ne démarre pas la consommation mais change l'afficnité de l'objet consommateur)
pThread->start();
Log::getInstance().info("Thread du consommateur lancé...");
// Exécution de la méthode process() du consommateur sur le thread dédié
QMetaObject::invokeMethod(*ppConsumer, "process");
Log::getInstance().info("Consommateur activé...");
// Retour
return pThread;
}
/**
* @brief main Ce programme active une file d'attente disque (classe FilesQueue).
* Cette file est alimentée par un thread "producteur" et elle signale un thread "consommateur" dont le slot
* consomme le fichier.
* @param argc
* @param argv
* @return
*/
int main(int argc, char *argv[]) {
QCoreApplication a(argc, argv);
// Création d'un chronomètre d'arrêt du producteur (non lancé à ce stade)
QTimer* pTimer = new QTimer;
pTimer->setSingleShot(true);
// Lancement de la file d'attente
FilesQueue* pQueue = nullptr;
QThread* pThreadQueue = runFilesQueue(&pQueue);
// Lancement du producteur
Producer* pProducer = nullptr;
QThread* pThreadProd = runProducer(&pProducer);
QObject::connect(pTimer, &QTimer::timeout, pProducer, &Producer::onQuit);
// Lancement du consommateur
Consumer* pConsumer = nullptr;
QThread* pThreadCons = runConsumer(&pConsumer, pQueue);
// Détection du tic du chronomètre d'arrêt
QObject::connect(pTimer, &QTimer::timeout, [] () {
Log::getInstance().info("Tic chronomètre reçu...");
});
// Mécanisme d'arrêt en cascade en commeçant par l'arrêt du producteur
QObject::connect(pThreadProd, &QThread::finished, [pThreadQueue, pThreadCons]() {
Log::getInstance().info("> [QThread::finished] Thread d'affinité du producteur achevé...");
pThreadCons->quit();
pThreadQueue->quit();
});
QObject::connect(pThreadCons, &QThread::finished, []() {
Log::getInstance().info("> [QThread::finished] Thread d'affinité du consommateur achevé...");
});
QObject::connect(pThreadQueue, &QThread::finished, [&a]() {
Log::getInstance().info("> [QThread::finished] Thread d'affinité de la file d'attente achevé...");
a.quit();
});
// Lnncement du chronètre d'arrêt
pTimer->start(120000);
// Boucle évènementielle du programme console (attente passive)
QCoreApplication::exec();
// Purge
Log::getInstance().info(QString("Nombre de fichiers dans la file d'attente avant sa suppression : %1")
.arg(pQueue->size()));
pTimer->deleteLater();
pProducer->deleteLater();
pThreadProd->deleteLater();
pQueue->deleteLater();
pThreadQueue->deleteLater();
Log::getInstance().info("Programme achevé.");
return 0;
}
Voici la sortie affichée :
"29/05/2026 18:33:02,141 <INFOR> Thread de la file d'attente lancé..." "29/05/2026 18:33:02,142 <INFOR> File d'attente activée..." "29/05/2026 18:33:02,142 <INFOR> Thread producteur lancé..." "29/05/2026 18:33:02,142 <INFOR> Production des fichiers activée..." "29/05/2026 18:33:02,142 <INFOR> Thread du consommateur lancé..." "29/05/2026 18:33:02,142 <INFOR> Consommateur activé..." "29/05/2026 18:33:02,237 <INFOR> Production du fichier [Producer-0]..." "29/05/2026 18:33:02,237 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:02,237 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:02,237 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:02,237 <INFOR> Ajouté :" "29/05/2026 18:33:02,237 <INFOR> + Producer-0" "29/05/2026 18:33:02,237 <INFOR> Supprimé :" "29/05/2026 18:33:02,237 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:02,237 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:02,237 <INFOR> * Producer-0" "29/05/2026 18:33:02,237 <DEBUG> > consummed : Fichier Producer-0 utilisé par le consommateur Conso 1" "29/05/2026 18:33:02,331 <INFOR> Production du fichier [Producer-1]..." "29/05/2026 18:33:02,331 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:02,331 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:02,331 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:02,331 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:02,331 <INFOR> Ajouté :" "29/05/2026 18:33:02,331 <INFOR> + Producer-1" "29/05/2026 18:33:02,331 <INFOR> Supprimé :" "29/05/2026 18:33:02,332 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:02,332 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:02,332 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:02,332 <INFOR> * Producer-1" "29/05/2026 18:33:02,332 <DEBUG> > consummed : Fichier Producer-1 utilisé par le consommateur Conso 1" "29/05/2026 18:33:02,427 <INFOR> Production du fichier [Producer-2]..." "29/05/2026 18:33:02,427 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:02,427 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:02,427 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:02,427 <INFOR> Ajouté :" "29/05/2026 18:33:02,427 <INFOR> + Producer-2" "29/05/2026 18:33:02,427 <INFOR> Supprimé :" "29/05/2026 18:33:02,427 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:02,427 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:02,427 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:02,427 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:02,427 <INFOR> * Producer-2" "29/05/2026 18:33:02,427 <DEBUG> > consummed : Fichier Producer-2 utilisé par le consommateur Conso 1" "29/05/2026 18:33:02,527 <INFOR> Production du fichier [Producer-3]..." "29/05/2026 18:33:02,527 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:02,527 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:02,527 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:02,527 <INFOR> Ajouté :" "29/05/2026 18:33:02,527 <INFOR> + Producer-3" "29/05/2026 18:33:02,527 <INFOR> Supprimé :" "29/05/2026 18:33:02,527 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:02,527 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:02,527 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:02,527 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:02,527 <INFOR> * Producer-3" "29/05/2026 18:33:02,527 <DEBUG> > consummed : Fichier Producer-3 utilisé par le consommateur Conso 1" "29/05/2026 18:33:02,626 <INFOR> Production du fichier [Producer-4]..." "29/05/2026 18:33:02,626 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:02,626 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:02,626 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:02,626 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:02,626 <INFOR> Ajouté :" "29/05/2026 18:33:02,626 <INFOR> + Producer-4" "29/05/2026 18:33:02,626 <INFOR> Supprimé :" "29/05/2026 18:33:02,626 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:02,626 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:02,626 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:02,626 <INFOR> * Producer-4" "29/05/2026 18:33:02,626 <DEBUG> > consummed : Fichier Producer-4 utilisé par le consommateur Conso 1" "29/05/2026 18:33:02,726 <INFOR> Production du fichier [Producer-5]..." "29/05/2026 18:33:02,727 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:02,727 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:02,727 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:02,727 <INFOR> Ajouté :" "29/05/2026 18:33:02,727 <INFOR> + Producer-5" "29/05/2026 18:33:02,727 <INFOR> Supprimé :" "29/05/2026 18:33:02,727 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:02,727 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:02,727 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:02,727 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:02,727 <INFOR> * Producer-5" "29/05/2026 18:33:02,727 <DEBUG> > consummed : Fichier Producer-5 utilisé par le consommateur Conso 1" "29/05/2026 18:33:02,827 <INFOR> Production du fichier [Producer-6]..." "29/05/2026 18:33:02,827 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:02,827 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:02,827 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:02,827 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:02,827 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:02,827 <INFOR> Ajouté :" "29/05/2026 18:33:02,827 <INFOR> + Producer-6" "29/05/2026 18:33:02,827 <INFOR> Supprimé :" "29/05/2026 18:33:02,827 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:02,827 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:02,827 <INFOR> * Producer-6" "29/05/2026 18:33:02,827 <DEBUG> > consummed : Fichier Producer-6 utilisé par le consommateur Conso 1" "29/05/2026 18:33:02,926 <INFOR> Production du fichier [Producer-7]..." "29/05/2026 18:33:02,926 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:02,926 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:02,926 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:02,926 <INFOR> Ajouté :" "29/05/2026 18:33:02,926 <INFOR> + Producer-7" "29/05/2026 18:33:02,926 <INFOR> Supprimé :" "29/05/2026 18:33:02,926 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:02,926 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:02,926 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:02,926 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:02,926 <INFOR> * Producer-7" "29/05/2026 18:33:02,926 <DEBUG> > consummed : Fichier Producer-7 utilisé par le consommateur Conso 1" "29/05/2026 18:33:03,026 <INFOR> Production du fichier [Producer-8]..." "29/05/2026 18:33:03,026 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:03,027 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:03,027 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:03,027 <INFOR> Ajouté :" "29/05/2026 18:33:03,027 <INFOR> + Producer-8" "29/05/2026 18:33:03,027 <INFOR> Supprimé :" "29/05/2026 18:33:03,027 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:03,027 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:03,027 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:03,027 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:03,027 <INFOR> * Producer-8" "29/05/2026 18:33:03,027 <DEBUG> > consummed : Fichier Producer-8 utilisé par le consommateur Conso 1" "29/05/2026 18:33:03,127 <INFOR> Production du fichier [Producer-9]..." "29/05/2026 18:33:03,127 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:03,127 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:03,127 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:03,127 <INFOR> Ajouté :" "29/05/2026 18:33:03,127 <INFOR> + Producer-9" "29/05/2026 18:33:03,127 <INFOR> Supprimé :" "29/05/2026 18:33:03,127 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:03,127 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:03,127 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:03,127 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:03,127 <INFOR> * Producer-9" "29/05/2026 18:33:03,127 <DEBUG> > consummed : Fichier Producer-9 utilisé par le consommateur Conso 1" "29/05/2026 18:33:03,227 <INFOR> Production du fichier [Producer-10]..." "29/05/2026 18:33:03,227 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:03,227 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:03,227 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:03,227 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:03,227 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:03,227 <INFOR> Ajouté :" "29/05/2026 18:33:03,227 <INFOR> + Producer-10" "29/05/2026 18:33:03,227 <INFOR> Supprimé :" "29/05/2026 18:33:03,227 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:03,227 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:03,227 <INFOR> * Producer-10" "29/05/2026 18:33:03,228 <DEBUG> > consummed : Fichier Producer-10 utilisé par le consommateur Conso 1" "29/05/2026 18:33:03,326 <INFOR> Production du fichier [Producer-11]..." "29/05/2026 18:33:03,326 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:03,326 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:03,326 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:03,326 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:03,326 <INFOR> Ajouté :" "29/05/2026 18:33:03,326 <INFOR> + Producer-11" "29/05/2026 18:33:03,326 <INFOR> Supprimé :" "29/05/2026 18:33:03,327 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:03,327 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:03,327 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:03,327 <INFOR> * Producer-11" "29/05/2026 18:33:03,327 <DEBUG> > consummed : Fichier Producer-11 utilisé par le consommateur Conso 1" "29/05/2026 18:33:03,427 <INFOR> Production du fichier [Producer-12]..." "29/05/2026 18:33:03,427 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:03,427 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:03,427 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:03,427 <INFOR> Ajouté :" "29/05/2026 18:33:03,427 <INFOR> + Producer-12" "29/05/2026 18:33:03,427 <INFOR> Supprimé :" "29/05/2026 18:33:03,427 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:03,427 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:03,427 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:03,427 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:03,427 <INFOR> * Producer-12" "29/05/2026 18:33:03,427 <DEBUG> > consummed : Fichier Producer-12 utilisé par le consommateur Conso 1" "29/05/2026 18:33:03,527 <INFOR> Production du fichier [Producer-13]..." "29/05/2026 18:33:03,527 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:03,527 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:03,527 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:03,527 <INFOR> Ajouté :" "29/05/2026 18:33:03,527 <INFOR> + Producer-13" "29/05/2026 18:33:03,527 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:03,527 <INFOR> Supprimé :" "29/05/2026 18:33:03,527 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:03,527 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:03,527 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:03,527 <INFOR> * Producer-13" "29/05/2026 18:33:03,527 <DEBUG> > consummed : Fichier Producer-13 utilisé par le consommateur Conso 1" "29/05/2026 18:33:03,627 <INFOR> Production du fichier [Producer-14]..." "29/05/2026 18:33:03,627 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:03,627 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:03,627 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:03,627 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:03,627 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:03,627 <INFOR> Ajouté :" "29/05/2026 18:33:03,627 <INFOR> + Producer-14" "29/05/2026 18:33:03,627 <INFOR> Supprimé :" "29/05/2026 18:33:03,627 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:03,627 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:03,627 <INFOR> * Producer-14" "29/05/2026 18:33:03,627 <DEBUG> > consummed : Fichier Producer-14 utilisé par le consommateur Conso 1" "29/05/2026 18:33:03,726 <INFOR> Production du fichier [Producer-15]..." "29/05/2026 18:33:03,726 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:03,727 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:03,727 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:03,727 <INFOR> Ajouté :" "29/05/2026 18:33:03,727 <INFOR> + Producer-15" "29/05/2026 18:33:03,727 <INFOR> Supprimé :" "29/05/2026 18:33:03,727 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:03,727 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:03,727 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:03,727 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:03,727 <INFOR> * Producer-15" "29/05/2026 18:33:03,727 <DEBUG> > consummed : Fichier Producer-15 utilisé par le consommateur Conso 1" "29/05/2026 18:33:03,827 <INFOR> Production du fichier [Producer-16]..." "29/05/2026 18:33:03,827 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:03,827 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:03,827 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:03,827 <INFOR> Ajouté :" "29/05/2026 18:33:03,827 <INFOR> + Producer-16" "29/05/2026 18:33:03,827 <INFOR> Supprimé :" "29/05/2026 18:33:03,827 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:03,827 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:03,827 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:03,827 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:03,827 <INFOR> * Producer-16" "29/05/2026 18:33:03,827 <DEBUG> > consummed : Fichier Producer-16 utilisé par le consommateur Conso 1" "29/05/2026 18:33:03,927 <INFOR> Production du fichier [Producer-17]..." "29/05/2026 18:33:03,927 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:03,927 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:03,927 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:03,927 <INFOR> Ajouté :" "29/05/2026 18:33:03,927 <INFOR> + Producer-17" "29/05/2026 18:33:03,927 <INFOR> Supprimé :" "29/05/2026 18:33:03,927 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:03,927 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:03,927 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:03,927 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:03,927 <INFOR> * Producer-17" "29/05/2026 18:33:03,927 <DEBUG> > consummed : Fichier Producer-17 utilisé par le consommateur Conso 1" "29/05/2026 18:33:04,026 <INFOR> Production du fichier [Producer-18]..." "29/05/2026 18:33:04,026 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:04,026 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:04,026 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:04,026 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:04,026 <INFOR> Ajouté :" "29/05/2026 18:33:04,026 <INFOR> + Producer-18" "29/05/2026 18:33:04,026 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:04,026 <INFOR> Supprimé :" "29/05/2026 18:33:04,027 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:04,027 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:04,027 <INFOR> * Producer-18" "29/05/2026 18:33:04,027 <DEBUG> > consummed : Fichier Producer-18 utilisé par le consommateur Conso 1" "29/05/2026 18:33:04,127 <INFOR> Production du fichier [Producer-19]..." "29/05/2026 18:33:04,127 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:04,127 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:04,127 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:04,127 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:04,127 <INFOR> Ajouté :" "29/05/2026 18:33:04,127 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:04,127 <INFOR> + Producer-19" "29/05/2026 18:33:04,127 <INFOR> Supprimé :" "29/05/2026 18:33:04,127 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:04,127 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:04,127 <INFOR> * Producer-19" "29/05/2026 18:33:04,127 <DEBUG> > consummed : Fichier Producer-19 utilisé par le consommateur Conso 1" "29/05/2026 18:33:04,227 <INFOR> Production du fichier [Producer-20]..." "29/05/2026 18:33:04,227 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:04,227 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:04,227 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:04,227 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:04,227 <INFOR> Ajouté :" "29/05/2026 18:33:04,227 <INFOR> + Producer-20" "29/05/2026 18:33:04,227 <INFOR> Supprimé :" "29/05/2026 18:33:04,227 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:04,227 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:04,227 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:04,227 <INFOR> * Producer-20" "29/05/2026 18:33:04,227 <DEBUG> > consummed : Fichier Producer-20 utilisé par le consommateur Conso 1" "29/05/2026 18:33:04,326 <INFOR> Production du fichier [Producer-21]..." "29/05/2026 18:33:04,326 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:04,326 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:04,327 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:04,327 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:04,327 <INFOR> Ajouté :" "29/05/2026 18:33:04,327 <INFOR> + Producer-21" "29/05/2026 18:33:04,327 <INFOR> Supprimé :" "29/05/2026 18:33:04,327 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:04,327 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:04,327 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:04,327 <INFOR> * Producer-21" "29/05/2026 18:33:04,327 <DEBUG> > consummed : Fichier Producer-21 utilisé par le consommateur Conso 1" "29/05/2026 18:33:04,427 <INFOR> Production du fichier [Producer-22]..." "29/05/2026 18:33:04,427 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:04,427 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:04,427 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:04,427 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:04,427 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:04,427 <INFOR> Ajouté :" "29/05/2026 18:33:04,427 <INFOR> + Producer-22" "29/05/2026 18:33:04,427 <INFOR> Supprimé :" "29/05/2026 18:33:04,427 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:04,427 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:04,427 <INFOR> * Producer-22" "29/05/2026 18:33:04,427 <DEBUG> > consummed : Fichier Producer-22 utilisé par le consommateur Conso 1" "29/05/2026 18:33:04,527 <INFOR> Production du fichier [Producer-23]..." "29/05/2026 18:33:04,527 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:04,527 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:04,527 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:04,527 <INFOR> Ajouté :" "29/05/2026 18:33:04,527 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:04,527 <INFOR> + Producer-23" "29/05/2026 18:33:04,527 <INFOR> Supprimé :" "29/05/2026 18:33:04,528 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:04,528 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:04,528 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:04,528 <INFOR> * Producer-23" "29/05/2026 18:33:04,528 <DEBUG> > consummed : Fichier Producer-23 utilisé par le consommateur Conso 1" "29/05/2026 18:33:04,626 <INFOR> Production du fichier [Producer-24]..." "29/05/2026 18:33:04,626 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:04,626 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:04,626 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:04,626 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:04,626 <INFOR> Ajouté :" "29/05/2026 18:33:04,626 <INFOR> + Producer-24" "29/05/2026 18:33:04,626 <INFOR> Supprimé :" "29/05/2026 18:33:04,626 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:04,627 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:04,627 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:04,627 <INFOR> * Producer-24" "29/05/2026 18:33:04,627 <DEBUG> > consummed : Fichier Producer-24 utilisé par le consommateur Conso 1" "29/05/2026 18:33:04,726 <INFOR> Production du fichier [Producer-25]..." "29/05/2026 18:33:04,727 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:04,727 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:04,727 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:04,727 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:04,727 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:04,727 <INFOR> Ajouté :" "29/05/2026 18:33:04,727 <INFOR> + Producer-25" "29/05/2026 18:33:04,727 <INFOR> Supprimé :" "29/05/2026 18:33:04,727 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:04,727 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:04,727 <INFOR> * Producer-25" "29/05/2026 18:33:04,727 <DEBUG> > consummed : Fichier Producer-25 utilisé par le consommateur Conso 1" "29/05/2026 18:33:04,827 <INFOR> Production du fichier [Producer-26]..." "29/05/2026 18:33:04,827 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:04,827 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:04,827 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:04,827 <INFOR> Ajouté :" "29/05/2026 18:33:04,827 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:04,827 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:04,827 <INFOR> + Producer-26" "29/05/2026 18:33:04,827 <INFOR> Supprimé :" "29/05/2026 18:33:04,827 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:04,827 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:04,827 <INFOR> * Producer-26" "29/05/2026 18:33:04,827 <DEBUG> > consummed : Fichier Producer-26 utilisé par le consommateur Conso 1" "29/05/2026 18:33:04,926 <INFOR> Production du fichier [Producer-27]..." "29/05/2026 18:33:04,926 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:04,926 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:04,926 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:04,926 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:04,926 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:04,926 <INFOR> Ajouté :" "29/05/2026 18:33:04,926 <INFOR> + Producer-27" "29/05/2026 18:33:04,926 <INFOR> Supprimé :" "29/05/2026 18:33:04,926 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:04,926 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:04,926 <INFOR> * Producer-27" "29/05/2026 18:33:04,926 <DEBUG> > consummed : Fichier Producer-27 utilisé par le consommateur Conso 1" "29/05/2026 18:33:05,026 <INFOR> Production du fichier [Producer-28]..." "29/05/2026 18:33:05,026 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:05,026 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:05,026 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:05,026 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:05,026 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:05,026 <INFOR> Ajouté :" "29/05/2026 18:33:05,026 <INFOR> + Producer-28" "29/05/2026 18:33:05,026 <INFOR> Supprimé :" "29/05/2026 18:33:05,027 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:05,027 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:05,027 <INFOR> * Producer-28" "29/05/2026 18:33:05,027 <DEBUG> > consummed : Fichier Producer-28 utilisé par le consommateur Conso 1" "29/05/2026 18:33:05,127 <INFOR> Production du fichier [Producer-29]..." "29/05/2026 18:33:05,127 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:05,127 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:05,127 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:05,127 <INFOR> Ajouté :" "29/05/2026 18:33:05,127 <INFOR> + Producer-29" "29/05/2026 18:33:05,127 <INFOR> Supprimé :" "29/05/2026 18:33:05,127 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:05,127 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:05,127 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:05,127 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:05,127 <INFOR> * Producer-29" "29/05/2026 18:33:05,127 <DEBUG> > consummed : Fichier Producer-29 utilisé par le consommateur Conso 1" "29/05/2026 18:33:05,227 <INFOR> Production du fichier [Producer-30]..." "29/05/2026 18:33:05,227 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:05,227 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:05,227 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:05,227 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:05,227 <INFOR> Ajouté :" "29/05/2026 18:33:05,227 <INFOR> + Producer-30" "29/05/2026 18:33:05,227 <INFOR> Supprimé :" "29/05/2026 18:33:05,227 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:05,227 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:05,227 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:05,227 <INFOR> * Producer-30" "29/05/2026 18:33:05,227 <DEBUG> > consummed : Fichier Producer-30 utilisé par le consommateur Conso 1" "29/05/2026 18:33:05,326 <INFOR> Production du fichier [Producer-31]..." "29/05/2026 18:33:05,326 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:05,326 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:05,326 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:05,326 <INFOR> Ajouté :" "29/05/2026 18:33:05,326 <INFOR> + Producer-31" "29/05/2026 18:33:05,326 <INFOR> Supprimé :" "29/05/2026 18:33:05,326 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:05,326 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:05,326 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:05,326 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:05,326 <INFOR> * Producer-31" "29/05/2026 18:33:05,326 <DEBUG> > consummed : Fichier Producer-31 utilisé par le consommateur Conso 1" "29/05/2026 18:33:05,426 <INFOR> Production du fichier [Producer-32]..." "29/05/2026 18:33:05,426 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:05,426 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:05,427 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:05,427 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:05,427 <INFOR> Ajouté :" "29/05/2026 18:33:05,427 <INFOR> + Producer-32" "29/05/2026 18:33:05,427 <INFOR> Supprimé :" "29/05/2026 18:33:05,427 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:05,427 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:05,427 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:05,427 <INFOR> * Producer-32" "29/05/2026 18:33:05,427 <DEBUG> > consummed : Fichier Producer-32 utilisé par le consommateur Conso 1" "29/05/2026 18:33:05,527 <INFOR> Production du fichier [Producer-33]..." "29/05/2026 18:33:05,527 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:05,527 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:05,527 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:05,527 <INFOR> Ajouté :" "29/05/2026 18:33:05,527 <INFOR> + Producer-33" "29/05/2026 18:33:05,527 <INFOR> Supprimé :" "29/05/2026 18:33:05,527 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:05,527 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:05,527 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:05,527 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:05,527 <INFOR> * Producer-33" "29/05/2026 18:33:05,527 <DEBUG> > consummed : Fichier Producer-33 utilisé par le consommateur Conso 1" "29/05/2026 18:33:05,627 <INFOR> Production du fichier [Producer-34]..." "29/05/2026 18:33:05,627 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:05,627 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:05,627 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:05,627 <INFOR> Ajouté :" "29/05/2026 18:33:05,627 <INFOR> + Producer-34" "29/05/2026 18:33:05,627 <INFOR> Supprimé :" "29/05/2026 18:33:05,627 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:05,627 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:05,627 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:05,627 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:05,627 <INFOR> * Producer-34" "29/05/2026 18:33:05,627 <DEBUG> > consummed : Fichier Producer-34 utilisé par le consommateur Conso 1" "29/05/2026 18:33:05,726 <INFOR> Production du fichier [Producer-35]..." "29/05/2026 18:33:05,726 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:05,727 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:05,727 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:05,727 <INFOR> Ajouté :" "29/05/2026 18:33:05,727 <INFOR> + Producer-35" "29/05/2026 18:33:05,727 <INFOR> Supprimé :" "29/05/2026 18:33:05,727 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:05,727 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:05,727 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:05,727 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:05,727 <INFOR> * Producer-35" "29/05/2026 18:33:05,727 <DEBUG> > consummed : Fichier Producer-35 utilisé par le consommateur Conso 1" "29/05/2026 18:33:05,827 <INFOR> Production du fichier [Producer-36]..." "29/05/2026 18:33:05,827 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:05,827 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:05,827 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:05,827 <INFOR> Ajouté :" "29/05/2026 18:33:05,827 <INFOR> + Producer-36" "29/05/2026 18:33:05,827 <INFOR> Supprimé :" "29/05/2026 18:33:05,827 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:05,827 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:05,827 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:05,827 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:05,827 <INFOR> * Producer-36" "29/05/2026 18:33:05,827 <DEBUG> > consummed : Fichier Producer-36 utilisé par le consommateur Conso 1" "29/05/2026 18:33:05,927 <INFOR> Production du fichier [Producer-37]..." "29/05/2026 18:33:05,927 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:05,927 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:05,927 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:05,927 <INFOR> Ajouté :" "29/05/2026 18:33:05,927 <INFOR> + Producer-37" "29/05/2026 18:33:05,927 <INFOR> Supprimé :" "29/05/2026 18:33:05,927 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:05,927 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:05,927 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:05,927 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:05,927 <INFOR> * Producer-37" "29/05/2026 18:33:05,927 <DEBUG> > consummed : Fichier Producer-37 utilisé par le consommateur Conso 1" "29/05/2026 18:33:06,026 <INFOR> Production du fichier [Producer-38]..." "29/05/2026 18:33:06,026 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:06,026 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:06,026 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:06,026 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:06,026 <INFOR> Ajouté :" "29/05/2026 18:33:06,026 <INFOR> + Producer-38" "29/05/2026 18:33:06,026 <INFOR> Supprimé :" "29/05/2026 18:33:06,026 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:06,026 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:06,026 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:06,026 <INFOR> * Producer-38" "29/05/2026 18:33:06,026 <DEBUG> > consummed : Fichier Producer-38 utilisé par le consommateur Conso 1" "29/05/2026 18:33:06,126 <INFOR> Production du fichier [Producer-39]..." "29/05/2026 18:33:06,127 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:06,127 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:06,127 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:06,127 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:06,127 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:06,127 <INFOR> Ajouté :" "29/05/2026 18:33:06,127 <INFOR> + Producer-39" "29/05/2026 18:33:06,127 <INFOR> Supprimé :" "29/05/2026 18:33:06,127 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:06,127 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:06,127 <INFOR> * Producer-39" "29/05/2026 18:33:06,127 <DEBUG> > consummed : Fichier Producer-39 utilisé par le consommateur Conso 1" "29/05/2026 18:33:06,227 <INFOR> Production du fichier [Producer-40]..." "29/05/2026 18:33:06,227 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:06,227 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:06,227 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:06,227 <INFOR> Ajouté :" "29/05/2026 18:33:06,227 <INFOR> + Producer-40" "29/05/2026 18:33:06,227 <INFOR> Supprimé :" "29/05/2026 18:33:06,227 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:06,227 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:06,227 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:06,227 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:06,227 <INFOR> * Producer-40" "29/05/2026 18:33:06,227 <DEBUG> > consummed : Fichier Producer-40 utilisé par le consommateur Conso 1" "29/05/2026 18:33:06,326 <INFOR> Production du fichier [Producer-41]..." "29/05/2026 18:33:06,326 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:06,326 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:06,326 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:06,326 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:06,326 <INFOR> Ajouté :" "29/05/2026 18:33:06,326 <INFOR> + Producer-41" "29/05/2026 18:33:06,326 <INFOR> Supprimé :" "29/05/2026 18:33:06,326 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:06,326 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:06,326 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:06,326 <INFOR> * Producer-41" "29/05/2026 18:33:06,326 <DEBUG> > consummed : Fichier Producer-41 utilisé par le consommateur Conso 1" "29/05/2026 18:33:06,426 <INFOR> Production du fichier [Producer-42]..." "29/05/2026 18:33:06,426 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:06,427 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:06,427 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:06,427 <INFOR> Ajouté :" "29/05/2026 18:33:06,427 <INFOR> + Producer-42" "29/05/2026 18:33:06,427 <INFOR> Supprimé :" "29/05/2026 18:33:06,427 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:06,427 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:06,427 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:06,427 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:06,427 <INFOR> * Producer-42" "29/05/2026 18:33:06,427 <DEBUG> > consummed : Fichier Producer-42 utilisé par le consommateur Conso 1" "29/05/2026 18:33:06,527 <INFOR> Production du fichier [Producer-43]..." "29/05/2026 18:33:06,527 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:06,527 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:06,527 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:06,527 <INFOR> Ajouté :" "29/05/2026 18:33:06,527 <INFOR> + Producer-43" "29/05/2026 18:33:06,527 <INFOR> Supprimé :" "29/05/2026 18:33:06,527 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:06,527 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:06,527 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:06,527 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:06,527 <INFOR> * Producer-43" "29/05/2026 18:33:06,527 <DEBUG> > consummed : Fichier Producer-43 utilisé par le consommateur Conso 1" "29/05/2026 18:33:06,626 <INFOR> Production du fichier [Producer-44]..." "29/05/2026 18:33:06,626 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:06,626 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:06,626 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:06,626 <INFOR> Ajouté :" "29/05/2026 18:33:06,626 <INFOR> + Producer-44" "29/05/2026 18:33:06,626 <INFOR> Supprimé :" "29/05/2026 18:33:06,626 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:06,626 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:06,626 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:06,626 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:06,626 <INFOR> * Producer-44" "29/05/2026 18:33:06,626 <DEBUG> > consummed : Fichier Producer-44 utilisé par le consommateur Conso 1" "29/05/2026 18:33:06,726 <INFOR> Production du fichier [Producer-45]..." "29/05/2026 18:33:06,726 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:06,726 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:06,726 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:06,726 <INFOR> Ajouté :" "29/05/2026 18:33:06,726 <INFOR> + Producer-45" "29/05/2026 18:33:06,726 <INFOR> Supprimé :" "29/05/2026 18:33:06,727 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:06,727 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:06,727 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:06,727 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:06,727 <INFOR> * Producer-45" "29/05/2026 18:33:06,727 <DEBUG> > consummed : Fichier Producer-45 utilisé par le consommateur Conso 1" "29/05/2026 18:33:06,827 <INFOR> Production du fichier [Producer-46]..." "29/05/2026 18:33:06,827 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:06,827 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:06,827 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:06,827 <INFOR> Ajouté :" "29/05/2026 18:33:06,827 <INFOR> + Producer-46" "29/05/2026 18:33:06,827 <INFOR> Supprimé :" "29/05/2026 18:33:06,827 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:06,827 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:06,827 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:06,827 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:06,827 <INFOR> * Producer-46" "29/05/2026 18:33:06,827 <DEBUG> > consummed : Fichier Producer-46 utilisé par le consommateur Conso 1" "29/05/2026 18:33:06,927 <INFOR> Production du fichier [Producer-47]..." "29/05/2026 18:33:06,927 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (2 fichiers)" "29/05/2026 18:33:06,927 <DEBUG> > directoryChanged : Ajoutés = 1, Supprimés = 0, consommés = 1, taille de la file = 1" "29/05/2026 18:33:06,927 <INFOR> > [queueUpdated] File d'attente modifiée :" "29/05/2026 18:33:06,927 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:06,927 <INFOR> Ajouté :" "29/05/2026 18:33:06,927 <INFOR> + Producer-47" "29/05/2026 18:33:06,927 <INFOR> Supprimé :" "29/05/2026 18:33:06,927 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 1" "29/05/2026 18:33:06,927 <DEBUG> > requestForFiles : Demande de la liste des fichiers en attente pour le consommateur Conso 1" "29/05/2026 18:33:06,927 <INFOR> > [filesNotConsumed] Liste des fichiers non consommés :" "29/05/2026 18:33:06,927 <INFOR> * Producer-47" "29/05/2026 18:33:06,927 <DEBUG> > consummed : Fichier Producer-47 utilisé par le consommateur Conso 1" "29/05/2026 18:33:07,026 <DEBUG> ===== FIN DE PRODUCTION =====" "29/05/2026 18:33:12,030 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (1 fichiers)" "29/05/2026 18:33:12,030 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 1, taille de la file = 0" "29/05/2026 18:33:12,030 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (0 fichiers)" "29/05/2026 18:33:12,030 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 0" "29/05/2026 18:33:22,034 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (0 fichiers)" "29/05/2026 18:33:22,034 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 0" "29/05/2026 18:33:32,027 <DEBUG> > directoryChanged : Répertoire de la file d'attente modifié (0 fichiers)" "29/05/2026 18:33:32,027 <DEBUG> > directoryChanged : Ajoutés = 0, Supprimés = 0, consommés = 0, taille de la file = 0" "29/05/2026 18:33:32,054 <INFOR> Tic chronomètre reçu..." "29/05/2026 18:33:32,054 <DEBUG> > [FilesQueue] : Demande d'arrêt du thread d'affinité " "29/05/2026 18:33:32,054 <INFOR> > [QThread::finished] Thread d'affinité du producteur achevé..." "29/05/2026 18:33:32,054 <INFOR> > [QThread::finished] Thread d'affinité du consommateur achevé..." "29/05/2026 18:33:32,054 <INFOR> > [QThread::finished] Thread d'affinité de la file d'attente achevé..." "29/05/2026 18:33:32,054 <INFOR> Nombre de fichiers dans la file d'attente avant sa suppression : 0" "29/05/2026 18:33:32,054 <INFOR> Programme achevé."
Dans notre exemple, un fichier est émis toutes les 100 ms par le producteur,
le système le signale à l'objet de classe QFileSystemWatcher qui émet le
signal directoryChanged vers la file d'attente (objet de classe
FilesQueue).
Cette dernière émet alors le signal directoryUpdated auquel le consommateur est connecté
(en fait la connexion est faite automatiquement par la file d'attente lors de l'appel aux méthodes
process() et appendConsumer()).
Le consommateur affiche les listes reçues puis émet le signal requestForFiles.
La file est connectée à ce signal ce qui lui permet d'émettre vers le consommateur un signal
accompagné de la liste des fichiers qu'il n'a pas encore consommé.
Le consommateur récupère chaque fichier de cette liste, l'affiche et émet le signal
consumed auquel est connecté la file qui comprend alors qu'elle peut supprimer ce fichier.
Notez qu'après la fin de la production, le signal updatedDirectory continue d'être émis
toutes les 10 secondes.
Il s'agit d'un mode scrutation "lent" pour exploiter la file d'attente lorsque le producteur est trop rapide
pour que tous les signaux émis par l'objet de classe QFileSystemWatcher aient
pu être exploités ou que la file d'attente se trouve sur un répertyoire distant.
Ce cas a été rencontré avec un disque iSCSI sur un NAS disposant d'un cache en écriture.
Ce cache masquait la création des derniers fichiers non vu alors par l'observateur du répertoire qui ne
déclechait donc pas le signal directoryChanged pour ces fichiers.
Sans le mode de scrutation, ils auraient été ignorés puisque le producteur ne créait plus de fichiers.
Il s'agit en fait d'une sécurité visant à s'assurer de la pleine exploitation de la file d'attente lorsque
l'observateur du répertoire n'émet plus de signal (quelle qu'en soit la raison).
Un délai de 10 secondes a un très faible coût sur la ressource processeur et peut être accepté.
De plus, il est possible de modifier ce délai ou de désactiver le mode scrutation.
Nous fournissons ici les fichiers source du prototype. La librairie jmp n'est utilisée que pour l'affichage des traces journal et la création des exceptions C++ d'interruption. Il est facile d'adapter le code pour s'en passer (elle n'est pas livrée ici). Nous avons poussé les tests avec une production d'un fichier toutes les 3 ms et le prototype s'est bien comporté même si l'on observe une répetition des signaux de la file d'attente, le consommateur ne pouvant traiter les fichiers produits au même rythme. Mais c'est tout l'interêt de la file d'attente.
La file d'attente sur disque étant un mécanisme générique, la structure
ConsumerEntry, les classes FileEntry,
ConsumerAncestor et FilesQueue ont été
intégrées à la librairie jmp à partir de la version 1.6.2.