gpt4 book ai didi

java - 超时时停止 Actor 消息处理

转载 作者:行者123 更新时间:2023-12-01 23:42:13 26 4
gpt4 key购买 nike

我正在使用带有超时的询问模式来向我的 Actor 发送消息,这可能需要很长时间来处理。如果超时到期,我想停止处理消息。但是, Actor 似乎一直在处理该消息,而我收到了一封死信。

当超时到期时,如何阻止参与者处理消息?

最佳答案

简单的回答是你不能。一旦它开始处理它,发送 Kill 或 Poison Pill 或停止它只会阻止它处理 future 的消息。长的答案是,如果 Actor 碰巧处于某种循环中并且正在检查一些可变(并且可能是全局可用的)信号以停止循环,也许你可以解决这个问题,但是这种方法有很多危险信号,你应该忘记我什至提到过它。如果长调用碰巧是对 DB 之类的东西的阻塞 io 调用,那么就不用管它了;你会被困住,直到调用完成(如果幸运的话,会超时)。

参与者本身不知道有人通过ask调用它,并且有一个Future上游可能会超时。它对此没有概念,因此当 Future 超时时无法做出相应 react 。

关于java - 超时时停止 Actor 消息处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17727668/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com