JD a écrit, le 09/09/2009 10:45 AM : > Merci pour vos réponses, > > Le mardi 08 septembre 2009 à 17:02 +0200, Lionel Bouton a écrit : > >> Les détails de prefetch limit m'échappent, mais dans ce qui me semble >> être la même veine, Stompserver distribue tous les messages aux clients >> sans attendre de ack. Ce comportement est modifié lorsqu'un client >> s'inscrit avec :ack => 'client'. Dans ce dernier cas Stompserver attend >> un accusé de réception du client avant de passer au message suivant. >> > > Voici un exemple pour vous permettre de comprendre mon besoin (constat > issu de tests précédemment effectués) : > > J'ai un processeur activemessaging avec 3 pollers inscrits avec > acquittement client (:ack => 'client'). > Ces pollers exécutent des tâches longues (plusieurs minutes voir > plusieurs heures). > Un premier message arrive et son exécution monopolise l'un des pollers > qui ne renverra son ack au broker qu'a la fin du traitement. > Le 1ere poller étant occupé, un second message arrive. Du fait de > l'attente ack, le processeur dirige l'exécution de ce second message > vers le 2eme poller qui à son tour ne renverra un ack qu'à la fin du > traitement. > Le même scénario se produit pour le 3eme poller et tous les pollers sont > ainsi occupés. > Si un 4eme message arrive avant que l'un des pollers soit à nouveau > disponible, le message est perdu,
? C'est *plus* qu'étonnant. Le rôle d'un gestionnaire de file d'attente, c'est quand même de gérer l'attente des messages ne pouvant être traités immédiatement. Je n'ai jamais rencontré ce problème avec Stompserver (et pourtant j'ai des files d'attente de plusieurs centaines voir milliers d'entrées et des tests en live vérifiant que tous les traitements sont bien réalisés en temps fini). > le processeur renvoyant simplement un > message d'erreur au broker. > Quel message ? Lionel --~--~---------~--~----~------------~-------~--~----~ Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de Google Groups. Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse [email protected] Pour résilier votre abonnement envoyez un e-mail à l'adresse [email protected] -~----------~----~----~----~------~----~------~--~---
