Hello,

I have a distributed app that has an ignite client instance connected to
a grid. Every app registers for the same topic and uses it to broadcast
information to its peers and itself to perform async work in the ignite
thread pool. The handler for this topic may take several minutes to
perform its job, but I thought this would be OK because the docs for
sendOrdered say:
Note that local listeners are always executed in public thread pool, no
matter default or withAsync()[1] mode is used. [1]
[1] -
    
https://ignite.apache.org/releases/latest/javadoc/org/apache/ignite/IgniteMessaging.html#sendOrdered-java.lang.Object-java.lang.Object-long-
However, in my testing when I send to the whole cluster, the message
sent to the local listener (the message topic handler registered in the
same ignite client instance as the one sending) gets handled in the same
thread as sendOrdered() and blocks the sendOrdered() until it has been
completed.
I had a look through the code and could not see an obvious way to make
the local handler happen on an ignite thread pool instead of blocking
the sender. How can I make the local handler get called in an ignite
thread pool?
Appreciate any assistance.

Links:

  1. 
https://ignite.apache.org/releases/latest/javadoc/org/apache/ignite/IgniteMessaging.html#withAsync--

Reply via email to