Nous avons construit une infrastructure d'application basée sur ActiveMQ.Evénement de réception de message ActiveMQ uniquement un message par seconde?
Nous pouvons envoyer et recevoir des messages très bien, et pour la plupart, les choses sont plutôt rapides et correctes. Cependant, nous avons remarqué que si nous soumettons un lot de messages "à la fois", disons 5 000 messages - qu'ActiveMQ enverra les messages à l'application tierce à l'autre extrémité assez rapidement, et que cette application processus aussi assez rapidement, et qu'il fera en queue les réponses au courtier rapidement aussi, disons moins d'une minute. Mais pour une raison quelconque, notre EXE VB.NET qui a généré les messages ne semble traiter que les messages de retour qu'il reçoit de manière erratique, en faisant parfois environ une par seconde, en prenant parfois des pauses pendant une heure ou deux. puis revenant à un par seconde.
Origin (VB.NET EXE which we manage)
-> Broker (which we manage)
-> (3rd party app)
-> back to the same broker
-> back to the origin app.
Le récepteur attend le MessageListener de l'événement à partir du code C# téléchargé à partir ActiveMQ il y a peut-être 9 mois:
Public Delegate Sub MessageListener(ByVal message As NMS.IMessage)
Member of: NMS
Je pense que ce qui se passe est que MessageListener ne nous donne un message (NMS.IMessage) à mâcher, et c'est ce que nous traitons. Y at-il un moyen de dire "Sur un événement MessageListener, s'il vous plaît voir s'il y a d'autres messages dans la file d'attente en ce moment et les faire tous"?