私は "制御"メッセージを送信したいAkka Actorを持っています。 このActorの主な任務は、ループ内のポーリングプロセスであるKafkaキューを待ち受けることです。Akka Actorで安全にスレッドを作成できますか?
私は次のように単純に俳優をロックアップすることがわかってきましたし、それが「停止」(またはその他の)メッセージが表示されません。私はによって開始されたスレッドにループをラップすることができ
class Worker() extends Actor {
private var done = false
def receive = {
case "stop" =>
done = true
kafkaConsumer.close()
// other messages here
}
// Start digesting messages!
while (!done) {
kafkaConsumer.poll(100).iterator.map { cr: ConsumerRecord[Array[Byte], String] =>
// process the record
), null)
}
}
}
をアクタからスレッドを開始するのは大丈夫ですか安全ですか?より良い方法がありますか?
絶対にありません!あなたはおそらく "消費者の俳優"のようなものを作りたいと思うでしょう。 [Reactive Kafka](https://github.com/akka/reactive-kafka)を見てください。 –