2424public class PeriodicProducer extends AbstractVerticle {
2525
2626 private static final Logger logger = LoggerFactory .getLogger (PeriodicProducer .class );
27+ private String customMessage ;
2728
2829 @ Override
2930 public void start (Promise <Void > startPromise ) {
@@ -41,34 +42,33 @@ public void start(Promise<Void> startPromise) {
4142 private void setup (JsonObject config , Promise <Void > startPromise ) {
4243 HashMap <String , String > props = new HashMap <>();
4344 config .forEach (entry -> props .put (entry .getKey (), entry .getValue ().toString ()));
44- KafkaProducer <String , JsonObject > kafkaProducer = KafkaProducer .create (vertx , props );
45+ KafkaProducer <String , String > kafkaProducer = KafkaProducer .create (vertx , props );
4546
4647 TimeoutStream timerStream = vertx .periodicStream (2000 );
4748 timerStream .handler (tick -> produceKafkaRecord (kafkaProducer ));
4849 timerStream .pause ();
4950
50- vertx .eventBus ().<String >consumer (Main .PERIODIC_PRODUCER_ADDRESS , message -> handleCommand (timerStream , message ));
51+ vertx .eventBus ().<JsonObject >consumer (Main .PERIODIC_PRODUCER_ADDRESS , message -> handleCommand (timerStream , message ));
5152 logger .info ("🚀 PeriodicConsumer started" );
5253 startPromise .complete ();
5354 }
5455
55- private void handleCommand (TimeoutStream timerStream , Message <String > message ) {
56- String command = message .body ();
56+ private void handleCommand (TimeoutStream timerStream , Message <JsonObject > message ) {
57+ String command = message .body (). getString ( "action" , "none" ) ;
5758 if ("start" .equals (command )) {
5859 logger .info ("Producing Kafka records" );
60+ customMessage = message .body ().getString ("custom" , "Hello World" );
5961 timerStream .resume ();
6062 } else if ("stop" .equals (command )) {
6163 logger .info ("Stopping producing Kafka records" );
6264 timerStream .pause ();
6365 }
6466 }
6567
66- private void produceKafkaRecord (KafkaProducer <String , JsonObject > kafkaProducer ) {
67- JsonObject payload = new JsonObject ()
68- .put ("type" , "tick" )
69- .put ("when" , Instant .now ().toString ());
68+ private void produceKafkaRecord (KafkaProducer <String , String > kafkaProducer ) {
69+ String payload = customMessage ;
7070
71- KafkaProducerRecord <String , JsonObject > record = KafkaProducerRecord .create (Main .TOPIC , payload );
71+ KafkaProducerRecord <String , String > record = KafkaProducerRecord .create (Main .TOPIC , payload );
7272
7373 kafkaProducer
7474 .send (record )
@@ -81,6 +81,6 @@ private void produceKafkaRecord(KafkaProducer<String, JsonObject> kafkaProducer)
8181 .put ("value" , payload );
8282 vertx .eventBus ().send (Main .PERIODIC_PRODUCER_BROADCAST , kafkaMetaData );
8383 })
84- .onFailure (err -> logger .error ("Error sending {}" , payload . encode () , err ));
84+ .onFailure (err -> logger .error ("Error sending {}" , payload , err ));
8585 }
8686}
0 commit comments