6
tôi có những hành động tuần tự sau đây về hai diễn viên, một mẹP và một đứa trẻ C:Akka bối cảnh đồng hồ/Ngừng theo dõi xảy ra-trước khi mối quan hệ
- P đồng hồ C (
context watch c
) - P unwatches C (
context unwatch c
) - P dừng C duyên dáng (
c ! PoisonPill
)
Những gì tôi muốn biết là; Tôi có bảo đảm rằng Pkhông nhận được sự kiện Terminated
cho C?
Dưới đây là một mảnh mẫu mã
class HappensBefore extends App {
class C extends Actor { def receive = {} }
class P extends Actor {
val c = context actorOf Props[C]
context watch c
context unwatch c
c ! PoisonPill
def receive = { case Terminated(child) => println("Oh Noes!") }
}
ActorSystem("test") actorOf Props[P]
}
Viktor - cảm ơn câu trả lời. Có cách nào để giái quyết vấn đề này không? Điều quan trọng là trong trường hợp của tôi, diễn viên 'P' có thể tự hủy đăng ký với tư cách người nghe từ' C' theo cách mà khi nó dừng 'C', nó không nhận được sự kiện' Terminated'. Có cách nào để đính kèm lệnh gọi 'onSuccess' vào cuộc gọi' unwatch' không? Nếu không, việc sử dụng * unwatching * là gì? –
Bạn không biết liệu C có chấm dứt từ một số lý do khác ở giữa hai trạng thái này hay không. Bây giờ, nó có thể chỉ hoạt động, và làm điều đó 100% thời gian do cách nó hiện đang được thực hiện. Chúng tôi chỉ không đảm bảo rằng nó sẽ. –
Xin lỗi, tôi nên rõ ràng hơn. Chỉ có một cuộc gọi dừng C; đó là một trong bước 4 –