我想在Ignite缓存中执行异步方法并为执行设置超时。而且,我想指明遗嘱执行人。
使用cache.getAsync
非常接近所需的功能,但它不接受超时和执行程序参数。
目前,可以在以下Scala代码段中找到次优解决方案:
val igniteFuture = cache.getAsync(key)
igniteFuture.listenAsync(
(f: IgniteFuture[T]) => f.get(timeout.toMillis, TimeUnit.MILLISECONDS)), executor)
如何使用当前的Ignite构建块实现所需的功能?
答案 0 :(得分:1)
我认为,您正在混合期货和异步操作的概念。 Futures 是可以完成或等待的对象。因此,当您要求Ignite执行异步操作时,它会为您提供 future ,稍后将在某个时间点完成。您可以使用IgniteFuture.get()
方法在IgniteFuture.listen()
方法中指定一段时间,或订阅此未来的完成情况。
但是,执行操作的方式是从你那里获得的。您可以配置内部线程池的大小:https://apacheignite.readme.io/docs/thread-pools