Akka 调度程序不准确

Akka Scheduler Inaccuracy

我需要以相当高的固定速率(大约 30Hz 到 120Hz)向演员发送常规消息。我目前正在使用 Akka 的内置调度程序,但我发现它非常不准确。它以 10 毫秒为单位出现并且波动很大。

我试图通过减少 tick-duration 和 ticks-per-wheel 来提高调度程序的准确性,但我无法将 tick-duration 减少到 10ms 以下并且更改 ticks-per-wheel 没有任何效果。

我现在的解决方案是创建一个简单的 Java 线程,该线程在睡眠固定时间后向 actor 发送消息。这非常有效,但这样做似乎是非常错误的。此外,它会阻止应用程序正常退出,因为线程在 Akka 关闭时没有被取消。

是否有更准确的调度程序可用于此任务?或者有没有办法创建我自己的调度程序并将其插入 Akka?

干杯

如果您阅读了 Thread 上的#setDeamon,您可以解决现有问题。如果这在您的应用程序中只是一两次,我不会担心使用单独的线程。无论如何,该线程可能会很忙。