AKA按照设定的时间间隔做某事。
例如,假设我想每隔60秒扫描一个目录。
在Java中,我会像ScheduledExecutorService
这样使用:
Executor pool = Executors.newScheduledThreadPool(10)
pool.scheduleAtFixedRate(scanner, 0, 60, TimeUnit.SECONDS)
并且工作正常。
问题是,我想我想尝试在我的程序中使用Scala actor,但是我对如何组合actor和Java Executors,或者它们是否应该这样做有点困惑。
我想也许我可以有一个简单的跑步者,它只会在每个 N 秒发送消息给一个演员 - 这有意义吗?
答案 0 :(得分:2)
我想也许我可以有一个简单的跑步者,它只会每隔N秒向一个演员发送一条消息 - 这有意义吗?
是的,并考虑顺便使用Akka作为演员。它有一个更简单的API,更好的性能,并且有很多美味的东西。
答案 1 :(得分:0)
您可以尝试Scala Executor
本身,而不是Java。
执行提交的
,而不是为每组任务调用java.lang.Runnable
任务的对象 此接口提供了一种将任务提交与每个任务运行方式的机制分离的方法,包括线程使用,调度等的详细信息。 通常使用Executor而不是显式创建线程。例如,您可以使用:new Thread(new(RunnableTask())).start()
Executor executor = anExecutor;
executor.execute(new RunnableTask1());
executor.execute(new RunnableTask2());
...