저는 스칼라에서 akka 액터를 사용하고 있습니다. 액터가있는 방법이 있는지 알고 싶습니다. 액터는받은 메시지를 처리하는 동안 주기적으로 다른 메시지에 대한 사서함을 검사 할 수 있으며이 메시지를 따르면 해당 변수를 변경할 수 있습니다.주기적으로 액터 편지함을 확인하고 스칼라에서 변수를 변경하는 방법
같은 계획 :
class Actor1 (constructors){
def receive={
case "go" => run() //the actor starts
case "alter variables" // a new message is stashed in mailbox
}
def run={
//do stuff
check(mailbox) //while the porocessing of the "go" message
// is not finished
if ("alter variables" in mailbox) {
change a variable value
}
}
}
내가 왜 그렇게하고 싶은지 모르겠지만, Akka가 시행하려고하는 디자인 패턴을 깨뜨릴 것이라고 생각합니다. 따라서 나는 그것을하지 않을 것입니다. 메시지를 넣는 자신 만의 큐를 구현하여 유사한 큐를 검사 할 수있는 다른 메커니즘을 사용할 수도 있습니다. – childofsoong
이것은 불가능합니다. 액터는 한 번에 하나의 메시지 만 처리합니다 *. 이것이 병행 환경에서 안전한 변경 가능 상태를 보장하는 방법입니다. – Ryan