我实施了actix演员,其中包括let _: Addr<Unsync, _> = Supervisor::start(|_| MyActor::default());
特质。然后我尝试使用
actix = "0.5"
不幸的是,当该演员停止时,由于某种原因它不会自动重启。
Supervisor::start()
答案 0 :(得分:0)
actix的作者Nikolay Kim帮我分析了这个问题。事实证明,将_
结果分配给名为_
的变量会自动丢弃结果,因此主管实际上不会正确启动。
此问题的解决方案是将_addr
变量重命名为let _addr: Addr<Unsync, _> = Supervisor::start(|_| MyActor::default());
:
Supervisor
重命名后,MyActor
会在{{1}} actor停止后正确重新启动它。