Я новичок в Go lang, и я мог бы воспользоваться некоторыми советами о том, как изменить код.Все, что мне нужно сделать, это в зависимости от успеха или ошибки от Sarama (Apache Kafka в ходу), мне нужно войти и переслать дальше.Пока мой код выглядит таккак показано здесь
func checkSuccessOrFailAck(msg interface{}) {
switch msgType := msg.(type) {
case producer.Errors:
batchID := msg.Msg.Metadata.(ackMeta).batchID
statusChan := msg.Msg.Metadata.(ackMeta).statusChan
statusChan <- false
close(statusChan)
logs.Debug(appName, "Signalled failure on statusChan for batch ", batchID)
logs.Error(appName, "Failed to publish data to analyzer for batchID: ", batchID, msg)
case producer.Successes:
batchID := msg.Metadata.(ackMeta).batchID
statusChan := msg.Metadata.(ackMeta).statusChan
statusChan <- true
close(statusChan)
logs.Debug(appName, "Signalled success on statusChan for batch ", batchID)
logs.Debug(appName, "Successfully published data to analyzer:", succ.Topic, succ.Key, succ.Partition, succ.Offset, succ.Metadata)
}
}
Типы сообщений различны, как и способ извлечения атрибутов из него.Но я не доволен этим подходом, так как заявления больше, чем предыдущий.Может ли быть лучший способ думать, чтобы написать?