Je développe un framework de test simple en Java qui doit simuler des déploiements weblogic en répondant aux appels JMS. L'une des options de configuration de test est un délai pour simuler la latence. Je me demandais si quelqu'un avait de bonnes idées sur la façon de le faire. J'étais sur le point de créer un TimerTask pour le gérer, y a-t-il un meilleur moyen? Merci.Simuler la latence en Java
Répondre
Vous pouvez créer un ScheduledExecutorService pour effectuer ce que vous feriez après un délai.
private final ScheduleExecutorService executor =
Executors.newSingleThreadScheduledExecutor();
// is main loop, waits between 10 - 30 ms.
executor.schedule(new Runnable() { public void run() {
// my delayed task
}}, 10 + new Random().nextInt(20), TimeUnit.MILLI_SECOND);
EDIT: Vous pouvez utiliser le Concurrency Backport pour JDK 1.4. Cela fonctionne pour JDK 1.2 à JDK 6
Que diriez-vous juste
Thread.sleep(10 + new Random().nextInt(20)); // waits between 10 - 30 ms.
dire dans le code qui répond aux JMS que vous appelez utiliser tout cela pour simuler un temps de latence aléatoire.
C'était ma pensée originale, le problème est que ceci attache le fil principal, qui n'est pas une simulation précise de notre système. Je voudrais que l'application puisse répondre au message suivant si nécessaire avant de renvoyer la réponse différée. – Igman
@Igman hmmm dans ce cas, je comprends votre problème mais cela semble bizarre architecturalement. Ne créez-vous pas un nouveau thread ou n'utilisez-vous pas un pool de threads pour traiter les demandes JMS entrantes? – mikera
Créez un objet qui moque le serveur. Quand il "reçoit" votre entrée, faites-lui un nouveau thread pour "gérer la connexion" comme un vrai serveur le ferait. Ce thread engendré peut Thread.sleep() au cœur de son contenu pour simuler à la fois l'envoi et le retard de réception, ainsi que vous permettre de se moquer de certaines propriétés de l'état du serveur qui pourraient être utiles lors des tests.
- 1. simuler java enum objective-c
- 2. Minuteries pour mesurer la latence
- 3. Simulation de la latence AJAX avec une fermeture d'emballage
- 4. faible latence cache distribué pour Java & C++ objet
- 5. Comment simuler différents scénarios de réseau? (en Java)
- 6. Java Applet: comment simuler une URL cliquée?
- 7. Temps de latence vidéo en direct
- 8. Simuler en plein écran
- 9. En ce qui concerne la latence dans Ping
- 10. Problème de latence Directory.CreateDirectory?
- 11. Problème de latence jmeter
- 12. bande passante de Latence
- 13. REST pour la messagerie à faible latence.
- 14. Simulation de connexions réseau à latence élevée/intermittentes
- 15. VB.NET OpenFileDialog Latence sur Win7
- 16. Google analytics, la vie privée et la latence
- 17. Comment simuler une exception non gérée dans Java
- 18. mesurer la latence de processus croisés sur Windows
- 19. calculer la latence entre le programme Erlang et C
- 20. Comment vérifier la latence entre le serveur et le client
- 21. Comment puis-je éliminer la latence dans la vidéo en temps réel?
- 22. Réduction de la latence lors de la diffusion audio en continu avec html 5
- 23. Cryptage: simuler SSL en javascript et python
- 24. Comment simuler des arguments POST en python
- 25. Simuler Pointeurs en Python pour l'arithmétique
- 26. Comment simuler "In" en utilisant Linq2Sql
- 27. Performances du datastore, mon code ou la latence du datastore
- 28. Comment simuler un clic en javascript?
- 29. simuler cliquez sur le lien en html
- 30. Simuler en cliquant sur le bouton
Ce serait probablement mon choix préféré, mais malheureusement j'utilise java 1.4. – Igman
@Igman, Voir mon EDIT –