【发布时间】:2019-11-18 16:54:34
【问题描述】:
我刚刚开始使用 monix,部分原因是为了在长时间运行的应用程序中安排重复工作。我将管理异常,但我希望 monix 继续调用给定的函数,即使我让它们通过其中的一些。
现在,从一个简单的测试来看,一旦安排了重复调用,一旦出现异常就不会继续调用它:
// will print "Hi" repeatedly
scheduler.scheduleAtFixedRate(5.milliseconds, 2.milliseconds) {
println("Hi")
}
// will print "Hi" only once
scheduler.scheduleAtFixedRate(5.milliseconds, 2.milliseconds) {
println("Hi")
throw new RuntimeException("oups, forgot to catch that one")
}
注意:我创建调度程序来记录异常和错误
编辑:
我意识到在失败时简单地重复该任务是一个糟糕的设计。相反,我实际上应该设置一个适当的异常管理系统,并延迟重启。
现在,我看不到 Monix 中有任何功能可以做到这一点。所以我必须自己做。如果有人遇到同样的问题,或者有人知道有用的 monix 工具,我会提出这个问题。
【问题讨论】: