mirror of
https://github.com/actix/examples
synced 2024-11-28 00:12:57 +01:00
.. | ||
src | ||
Cargo.toml | ||
README.md |
Usage:
This is an example on constructing async state with App::data_factory
Reason:
data_factory
would make sense in these situations:
-
When async state not necessarily have to be shared between workers/threads.
-
When async state would spawn tasks on
actix-rt
. If we centralized the state there could be a possibilitythe tasks get a very unbalanced distribution on the workers/threads (actix-rt
would spawn tasks on local thread whenever it's called)
Requirement:
rustc 1.43 stable
redis
server listen on127.0.0.1:6379
(or make change to const varREDIS_URL
inmain.rs
)
Endpoints:
-
use a work load generator(e.g wrk) to benchmark the end points:
http://127.0.0.1:8080/pool prebuilt shared redis pool http://127.0.0.1:8080/pool2 data_factory redis pool
Context:
The real world difference can be vary by the work you are doing but in general it's a good idea to spread your identical async tasks evenly between threads and have as little cross threads synchronization as possible.