为什么我的actix Supervisor没有重试停止演员?

时间:2018-05-25 09:59:05

标签: rust rust-actix

我实施了actix演员,其中包括let _: Addr<Unsync, _> = Supervisor::start(|_| MyActor::default()); 特质。然后我尝试使用

以受监督的方式启动演员
actix = "0.5"

不幸的是,当该演员停止时,由于某种原因它不会自动重启。

依赖版本

Supervisor::start()

1 个答案:

答案 0 :(得分:0)

actix的作者Nikolay Kim帮我分析了这个问题。事实证明,将_结果分配给名为_的变量会自动丢弃结果,因此主管实际上不会正确启动。

此问题的解决方案是将_addr变量重命名为let _addr: Addr<Unsync, _> = Supervisor::start(|_| MyActor::default());

Supervisor

重命名后,MyActor会在{{1}} actor停止后正确重新启动它。