Recevez maintenant les messages de la file d'attente des messages, puis écrivez dans un fichier. Écrivez-en un toutes les heures, ce qui correspond à une écriture par lots. Mais il y a un problème. Chaque fois qu'un nouveau fichier est écrit, il y a au début des données qui devraient appartenir à l'heure précédente, et le corps du message a l'heure. Comment vous assurer que tous les messages sont strictement écrits dans vos propres fichiers. Ce à quoi je pense maintenant, c'est de diviser les tampons écrits par lots par heure, Map<hour,buffer>, un tampon correspond à une heure, et le nom du fichier est généré en fonction du champ horaire correspondant au tampon. les données de chaque tampon appartiennent à elles-mêmes. Existe-t-il une autre meilleure façon ?
Le fichier est généré à l'heure, et chaque message a son propre horodatage, correspondant à l'écriture
J'ai l'impression que votre problème peut être causé par les raisons suivantes :
Le producteur a envoyé le message à plusieurs reprises
mq a envoyé un message à plusieurs reprises au consommateur
Le consommateur n'a pas informé mq qu'il avait consommé le message il y a une heure, donc mq a envoyé un autre message l'heure suivante
Référence :
messages-dupliqués-sur-activemq
éviter-les-messages-dupliqués-sur-jms-activemq
détection de doublons