我应该如何在Scala中安排一些简单的延迟任务?

pr1*_*001 3 scala scheduling

我正在制作一个Chaos Monkey程序,我希望它能在一段时间后自行清理.我想要一种简单的方法来将清理任务排队,以便将来称为一定时间.我想我可以和演员一起做点什么,还有很多挥手,但这似乎是错误的做法.在Scala标准库中是否有更好的工具来完成此任务?

oxb*_*kes 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
Run Code Online (Sandbox Code Playgroud)

其中f是闭包(即() => Unit).Wiki上有更多的例子和一个带箔的REPL会话示例,展示了如何使用它(包括Java Date/Calendar和JODA).