SPB Git

spb/hfmarketdata

Public

Open high-frequency market data platform — FirstRate full-history downloader, DuckDB/Parquet lake, open REST API and React docs platform (www.hfmarketdata.io)

page 1
  1. Mon, Sep 7, 2026 19

    1. Simon-Pierre Boucher · 1 file +145
  2. Sun, Sep 6, 2026 21

    1. Simon-Pierre Boucher · 1 file +35 −1
    2. Simon-Pierre Boucher · 81 files +2,909 −2,351
    3. Simon-Pierre Boucher · 1 file +40 −12
    4. Simon-Pierre Boucher · 1 file +45 −15
    5. stream: registre de connexions ZSET et livraison par XREAD bloquant
      …
      * stream:conns:{principal} : ZSET (membre = id de connexion, score = dernier
        heartbeat) au lieu d'un compteur INCR/DECR qui restait gonflé 1 h quand un worker
        mourait sans DECR (4029 injustifiés). Les membres muets depuis 90 s sont élagués à
        chaque comptage ; le score est rafraîchi toutes les 30 s ; ZREM à la déconnexion.
      * Fan-out : un XREAD BLOCK (1 s) par socket abonnée sur filings:stream, via le client
        redis.asyncio, au lieu d'un XRANGE toutes les 250 ms par connexion. Le lecteur a sa
        propre connexion Redis fermée avec lui (une lecture bloquante annulée peut laisser une
        réponse tardive sur la connexion — doublons à la ré-abonnement) + événement d'arrêt.
      * Plus aucun appel Redis synchrone dans la coroutine : ZSET/hello via le client async,
        accounting.charge (compteur sync) via asyncio.to_thread.
      * Tests : élagage des connexions fantômes, rafraîchissement du score au heartbeat,
        livraison bloquante + unsubscribe/resume sans doublon. conftest.make_user : e-mail
        unique par uuid (id(counter) provoquait des collisions EMAIL_TAKEN).
      
      Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
      Simon-Pierre Boucher · 4 files +234 −47
    6. Simon-Pierre Boucher · 1 file +15 −4
Menu

Theme