Executors control how a received message is scheduled for processing by a Server. This scheduling can be synchronous or asynchronous.
A synchronous executor will process the message on the Server’s thread. This means the Server can process only one message at a time. Other incoming messages will not be processed until the current message is done processing. For example, in the case of an RPCServer only one method call will be invoked at a time. A synchronous executor guarantees that messages complete processing in the order that they are received.
An asynchronous executor will process received messages concurrently. The Server thread will not be blocked by message processing and can continue to service incoming messages. There are no ordering guarantees - message processing may complete in a different order than they were received. The executor may be configured to limit the maximum number of messages that are processed at once.
Executor that uses the caller to execute calls synchronously.
This provides an interface to a caller that looks like an executor but will execute the calls inside the caller thread instead of executing it in a external process/thread for when this type of functionality is useful to provide…
It gathers statistics about the submissions executed for post-analysis…
Executor that uses a green thread pool to execute calls asynchronously.
See: https://docs.python.org/dev/library/concurrent.futures.html and http://eventlet.net/doc/modules/greenpool.html for information on how this works.
It gathers statistics about the submissions executed for post-analysis…
Executor that uses a thread pool to execute calls asynchronously.
It gathers statistics about the submissions executed for post-analysis…
See: https://docs.python.org/dev/library/concurrent.futures.html
Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.