Я пишу клиент pubsub Google, используя Java API, клиент написан на Scala. Проблема этого кода в том, что он не идиоматичен в scala с использованием null
и while true
loop
val receiver = new MessageReceiver() {
// React to each received message
// If there are any
override def receiveMessage(message: PubsubMessage, consumer: AckReplyConsumer): Unit = { // handle incoming message, then ack/nack the received message
System.out.println("Id : " + message.getMessageId)
System.out.println("Data : " + message.getData.toStringUtf8)
throw new RuntimeException("This is just an exception")
consumer.ack()
}
}
var subscriber: ApiService = null
try { // Create a subscriber for "my-subscription-id" bound to the message receiver
var subscriber = Subscriber.newBuilder(subscriptionName, receiver).build
subscriber.startAsync
// ...
} finally {
// stop receiving messages
if (subscriber != null) subscriber.stopAsync()
}
while (true) {
Thread.sleep(1000)
}
Как мне преобразовать этот код, чтобы использовать Scala's Future или cats IO