한 액터 내에서 코드를 실행하는 동안 액터가 아직 살아 있는지 확인해야합니다. 이 방법을 사용하는 것이 좋을지, 아니면 더 좋은 방법이 있습니까?스칼라/아크카 액터가 종료되었는지 확인
if (self != akka.actor.DeadLetter) {
// do something
}
감사!
수정 ---
모든 입력에 감사드립니다. 다음과 같은 일이 발생합니다. Play를 사용하고 있습니다. 내 액터가 시작되면 들어오는 요청에 대해 시간 초과가 예약됩니다.
Promise.timeout({
Logger.info(s"$self, timeout expired")
// do something
}, timeoutValue)
때로는 시간 제한이 만료되기 전에 다른 이유로 연기자가 중지됩니다 (예 : 클라이언트의 연결이 끊어짐). 이 경우, 제가 로그에 다음 참조 나의 이해에
Actor[akka://application/deadLetters], timeout expired.
, 이것은 기본 deadLetters
배우가 코드를 실행하는 것을 의미합니다. 그래서 내 질문은 실제로 : 배우가 종료 된 후에 약속 코드가 실행되는지 확인하는 가장 좋은 방법은 무엇입니까?
답변 해 주셔서 감사합니다. 내 질문에 대한 수정 사항을 볼 수 있습니까? 그것은 죽은 배우 코드에 대한 귀하의 발언을 고려하여 더 나은 문제를 설명합니다. – ticofab
안녕하세요 Fabio :) 다른 저자가 제안한 것처럼 그 배우에 대한 postStop으로 뭔가를 시도 할 수 있습니다. 액터가 종료됩니다). 예를 들어 다른 (시청하는) 배우에게 메시지를 보내면 컨텍스트가 변경됩니까? 또는 다른 외부 동기화를 사용하십시오. – Ashalynd