Multithreading¶
There are a few things you should consider before using aioarangodb in a multithreaded (or multiprocess) architecture.
Stateful Objects¶
Instances of the following classes are considered stateful, and should not be accessed across multiple threads without locks in place:
- BatchDatabase (see Batch Execution)
- BatchJob (see Batch Execution)
- Cursor (see Cursors)
HTTP Sessions¶
When ArangoClient is initialized, a `aiohttp.ClientSession`_ instance is created per ArangoDB host connected. HTTP requests to a host are sent using only its corresponding session. For more information on how to override this behaviour, see http.