Skip to content

Kafka message key is None #92

Open
primko opened this issue Sep 5, 2022 · 1 comment
Open

Kafka message key is None #92

primko opened this issue Sep 5, 2022 · 1 comment

Comments

@primko
Copy link

primko commented Sep 5, 2022

Пример отправки сообщения

exec(
  kafka("Some kafka message with header")
    .send(
      None,
      "some payload",
      new RecordHeaders().add("headerKey", "headerValue".getBytes)
    )
)

Ожидается, что в кафку отправиться сообщение с ключём null, а отправляется None
Пример "костыля" с которым работает верно
ru.tinkoff.gatling.kafka.actions.KafkaRequestAction

val key = kafkaAttributes.key.map(k => k(session).toOption.get) match {
    case Some(value) => if (value == None) null.asInstanceOf[K] else value
    case None        => null.asInstanceOf[K]
  }
@3alster
Copy link

3alster commented Feb 7, 2023

Ага, можно еще немного менее костыльнее, например

val key: K = kafkaAttributes.key match {
  //если атрибут сессии существует, то берем его, если не можем, то возвращаем null
  case Some(value) => value(session).toOption.getOrElse(null.asInstanceOf[K])
  //если ключ = None (когда вызываем send(value))
  case None        => null.asInstanceOf[K]
}

для вот такой симуляции

exec(_.set("key", null))
.exec(
  kafka("Some kafka message with header")
    .send[String, String](
      "#{key}",
      "some payload",
      new RecordHeaders().add("headerKey", "headerValue".getBytes)
    )
)```

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants