18dc8b08e4
Orient shm-flow-arrays around the new idea of a `Flume` which provides access, mgmt and basic measure of real-time data flow sets (see water flow management semantics). - We discard the previous idea of a "init message" which contained all the shm attachment info and instead send a startup message full of `Flume.to_msg()`s which are symmetrically loaded on the caller actor side. - Create data-flows "entries" for every passed in fqsn such that the consumer gets back streams and shm for each, now all wrapped in `Flume` types. For now we allocate `brokermod.stream_quotes()` tasks 1-to-1 for each fqsn (instead of expecting each backend to do multi-plexing, though we might want that eventually) as well a `_FeedsBus._subscriber` entry for each. The pause/resume management loop is adjusted to match. Previously `Feed`s were allocated 1-to-1 with each fqsn. - Make `Feed` a `Struct` subtype instead of a `@dataclass` and move all flow specific attrs to the new `Flume`: - move `.index_stream()`, `.get_ds_info()` to `Flume`. - drop `.receive()`: each fqsn entry will now require knowledge of separate streams by feed users. - add multi-fqsn tables: `.flumes`, `.streams` which point to the appropriate per-symbol entries. - Async load all `Flume`s from all contexts and all quote streams using `tractor.trionics.gather_contexts()` on the client `open_feed()` side. - Update feeds test to include streaming 2 symbols on the same (binance) backend. |
||
---|---|---|
.. | ||
conftest.py | ||
test_cli.py | ||
test_feeds.py | ||
test_questrade.py | ||
test_watchlists.py |