我想知道需要使用Geode / GemFire API来等待返回值的异步任务(例如Callable boolean processEvents(final List<AsyncEvent> events)
的AsyncEventListener
方法是否安全processEvents
仅在异步任务中完成的工作成功时返回true?
显然,要点是,如果实际上这些事件的处理实际上并未成功,我不希望AsyncEventListener.processEvents
方法返回true(表示成功)。只是事件的处理发生在另一个线程中。
我确实知道,异步任务花费很长时间并占用正在处理AsyncEventListener的线程是很不好的。
但是,除了吞吐量之外,做这种事情还有危险吗?有没有更好的方法?
您可以在AsyncEventListener
中做任何您想做的事,调用回调的实际线程独立于执行实际缓存操作的线程,因此客户端不会在侦听器中注意到“缓慢”。