Вот пример кода Scala для простого сообщения «Hello, World!» приложение, использующее Akka:
import akka.actor.{Actor, ActorSystem, Props}
// Define an actor
class HelloWorldActor extends Actor {
def receive: Receive = {
case "hello" => println("Hello, World!")
case _ => println("Unknown message!")
}
}
// Create an actor system
val system = ActorSystem("HelloWorldSystem")
// Create an instance of the HelloWorldActor
val helloActor = system.actorOf(Props[HelloWorldActor], "helloActor")
// Send a message to the HelloWorldActor
helloActor ! "hello"
// Terminate the actor system
system.terminate()
Этот код создает систему актеров, определяет актера с именем HelloWorldActor, создает экземпляр актера и отправляет ему сообщение. Затем актер печатает «Привет, мир!» когда он получит сообщение.
Вот несколько дополнительных методов, обычно используемых с Akka:
-
Создание дочерних актеров:
val childActor = system.actorOf(Props[ChildActor], "childActor")Этот код создает дочернего актера в системе актеров.
-
Отправка сообщений актерам:
helloActor ! "hello"Этот код отправляет сообщение экземпляру
helloActorс помощью оператора!. -
Обработка сообщений в актере:
class HelloWorldActor extends Actor { def receive: Receive = { case "hello" => println("Hello, World!") case name: String => println(s"Hello, $name!") case _ => println("Unknown message!") } }Этот код демонстрирует, как актер может обрабатывать различные типы сообщений.
-
Зацепки жизненного цикла актера:
class HelloWorldActor extends Actor { override def preStart(): Unit = { // Initialization code } override def postStop(): Unit = { // Cleanup code } def receive: Receive = { case "hello" => println("Hello, World!") case _ => println("Unknown message!") } }Этот код показывает, как использовать перехватчики жизненного цикла, такие как
preStartиpostStop, для выполнения задач инициализации и очистки.