Üzenetfeldolgozó mintarendszer
Egy távoli kliens a TaskQueue üzenetsorra helyez egy adott verziószámmal ellátott üzenetet. A TaskQueue-ra két feladatfeldolgozó (TaskProcessor1/2) csatlakozik pont-pont séma szerint. Ha a verziószám nem egyezik meg az aktuálissal, akkor az üzenetet áthelyezik az InvalidQueue-ra. Az InvalidHandler komponens feldolgozza az InvalidQueue-ra érkező üzeneteket, vár 5000ms-ot és visszeküldi a TaskQueue-ra.
Forráskód
Feladat
1. A TaskSender projektben indítsuk el a SendTask-ot.
14:36:22,021 INFO [stdout] (Thread-80 (ActiveMQ-client-global-threads)) Az üzenet ekkor megérkezett (TaskGenerator1): Mon Apr 16 14:36:22 CEST 2018 14:36:22,022 INFO [stdout] (Thread-80 (ActiveMQ-client-global-threads)) Az üzenet verziója: 1.1 14:36:22,022 INFO [stdout] (Thread-80 (ActiveMQ-client-global-threads)) Üzenet feldolgozva.
2. A SendTask.java 30. sorában növeljük a verziószámot 2.0-ra és indítsuk újra a SendTask-ot.
14:55:51,403 INFO [stdout] (Thread-92 (ActiveMQ-client-global-threads)) Az üzenet verziója: 2.0 14:55:51,431 INFO [stdout] (Thread-93 (ActiveMQ-client-global-threads)) Az üzenet ekkor megérkezett (InvalidQueue): Mon Apr 16 14:55:51 CEST 2018 14:55:56,437 INFO [stdout] (Thread-93 (ActiveMQ-client-global-threads)) Üzenet elküldve az InvalidQueue-ra 14:55:56,465 INFO [stdout] (Thread-92 (ActiveMQ-client-global-threads)) Az üzenet ekkor megérkezett (TaskGenerator1): Mon Apr 16 14:55:56 CEST 2018 14:55:56,465 INFO [stdout] (Thread-92 (ActiveMQ-client-global-threads)) Az üzenet verziója: 2.0 14:55:56,487 INFO [stdout] (Thread-93 (ActiveMQ-client-global-threads)) Az üzenet ekkor megérkezett (InvalidQueue): Mon Apr 16 14:55:56 CEST 2018
Végtelen ciklusban újra és újra küldi az InvalidQueue az üzeneteket.
3. A TaskProcessor1 és 2 java-ban írjuk át a verziószámot 2.0-ra és töltsük újra a wildfly-ban. Ekkor a hibás üzenet feldolgozásra kerül.