Ü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

Innen tölthető le

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.