Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
perf(katana-rpc): spawn blocking tasks (#1456)
Resolves #1448 Creates new crate under `katana`, `katana-tasks`, for managing spawning blocking tasks. RPC calls that mostly perform blocking tasks are now sent to their designated threadpools and won't block the async threads. - `TokioTaskSpawner`: mainly for spawning blocking IO-bound tasks (ie reading from storage) - `BlockingThreadPool`: mainly for spawning expensive CPU-bound tasks Depends on #1455 because now the RPC requests (that used to block the thread before) have to wait for the blocking tasks to finish and thus may be idling for more than 2 seconds which will result in a connection timeout. Doing `sozo migrate` on 2s timeout will failed when calling `/esimateFee` for estimating the World contract declare tx with error `connection closed before message completed`. Raw error message from `sozo` against the new changes: ```console Caused by: Failed to deploy world: Failed to migrate world: Migrator(Provider(Other(TransportError(Reqwest(reqwest::Error { kind: Request, url: Url { scheme: "http", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("localhost")), port: Some(5050), path: "/", query: None, fragment: None }, source: hyper::Error(IncompleteMessage) }))))) ```
- Loading branch information