我正在制作一个Chaos Monkey计划,我想让它在一段时间后自行清理。我想要一种简单的方法来将清理任务排队,以便将来称为一定时间。我想我可以和演员一起做点什么,还有很多挥手,但这似乎是错误的做法。在Scala标准库中是否有更好的工具来完成此任务?
答案 0 :(得分:9)
我在Scala中编写了一个名为foil的调度DSL,它可以在Github上免费获得。它可以与Java Calendar / Date或Joda库一起使用。语法如下所示:
schedule(f) now
schedule(f) onceAfter 5.minutes
schedule(f) onceAt inst
schedule(f) onceAtNext time
schedule(f) todayNoEarlierThan time
其中f是闭包(即() => Unit
)。还有更多示例on the Wiki和带有陪衬的example REPL session,展示了如何使用它(包括Java日期/日历和JODA)。
答案 1 :(得分:4)
没有所以涉及很多手势,reactWithin
结合TIMEOUT
消息可以让你这样做。
您还可以使用Futures.alarm
创建一个可在指定时间限制后解决的等待Future
。