控制IgniteFuture的执行

时间:2017-12-10 13:20:13

标签: scala ignite

我想在Ignite缓存中执行异步方法并为执行设置超时。而且,我想指明遗嘱执行人。

使用cache.getAsync非常接近所需的功能,但它不接受超时和执行程序参数。

目前,可以在以下Scala代码段中找到次优解决方案:

val igniteFuture = cache.getAsync(key)

igniteFuture.listenAsync(
(f: IgniteFuture[T]) => f.get(timeout.toMillis, TimeUnit.MILLISECONDS)), executor)

如何使用当前的Ignite构建块实现所需的功能?

1 个答案:

答案 0 :(得分:1)

我认为,您正在混合期货异步操作的概念。 Futures 是可以完成或等待的对象。因此,当您要求Ignite执行异步操作时,它会为您提供 future ,稍后将在某个时间点完成。您可以使用IgniteFuture.get()方法在IgniteFuture.listen()方法中指定一段时间,或订阅此未来的完成情况。

但是,执行操作的方式是从你那里获得的。您可以配置内部线程池的大小:https://apacheignite.readme.io/docs/thread-pools