[infinispan-dev] Async Notification API
Adrian Cole
ferncam1 at gmail.com
Fri May 15 19:47:21 EDT 2009
Well, this could be useful in many contexts, even outside of infinispan.
One thing to consider is the three ways things finish in Futures:
completion, cancellation, and exception. I suspect the listener interface
may want to handle all three, or some object that encapsulates those states.
I kindof like this flow in that case:
Future f = cache.putAsync(k, v).andInform(listener);
where NotifyingFuture has a method:
NotifyingFuture andInform(NotifyingFutureListener listener)
interesting stuff...
what do you think?
-Adrian
jclouds
On Sat, May 16, 2009 at 1:27 AM, Manik Surtani <manik at jboss.org> wrote:
> While the new async API has been getting rave reviews, someone did bring up
> async notifications. E.g.,
>
> Future f = cache.putAsync(k, v);
> f.get();
>
> But what if I don't want to wait on f.get(), I'd rather be told when the
> future is done so I can do an f.get()?
>
> Sounds pretty useful to me. But just wanted to sound you guys on the API
> choices for notifications.
>
> My immediate thought was to use the existing notification API. You
> register a cache listener, annotate a method with @RpcCallMade, receive an
> RpcCallMadeEvent. But this is probably pretty useless, since you couldn't
> associate the notification with the specific put you've just done. Even if
> you have the key in the event (which is unlikely - since we need to use the
> same event for all cache operations, some which take > 1 key such as
> putAll()), multiple threads could be working on the same key.
>
> Another approach is to design a sub-interface to Future. NotifyingFuture.
>
> public interface NotifyingFuture extends Future {
> void addListener(NotifyingFutureListener l);
> }
>
> public interface NotifyingFutureListener {
> void futureDone(Future f);
> }
>
> WDYT?
> --
> Manik Surtani
> manik at jboss.org
> Lead, Infinispan
> Lead, JBoss Cache
> http://www.infinispan.org
> http://www.jbosscache.org
>
>
>
>
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/infinispan-dev/attachments/20090516/0827dc33/attachment-0001.html
More information about the infinispan-dev
mailing list