Allow threading for sync `use_effect` calls
まだ誰も着手していません。
評価
調査の方向性
Start by tracing how sync use_effect calls are handled alongside the ASGI websocket consumer and document the current main-thread behavior. Define whether the default should serialize effects through a single worker, how the proposed threading parameter restores legacy behavior, and whether configurable worker counts are in scope; done requires an agreed design and corresponding coverage.
索引モデルが issue の本文から書いたものです。
説明
Current Situation
Users frequently run into unexpected webserver "freezing" when using sync effects due to Python's single-threaded nature. This is seemingly caused by the ASGI websocket consumer being blocked from receiving/sending data during hook operations. This behavior doesn't seem to match up with equivalent JavaScript server side frameworks.
Proposed Actions
By default we should run all sync effects in a ThreadPoolExecutor(max_workers=1). This effectively runs all sync effects in a background thread. Additionally, by running all effects in the same worker thread (max_workers=1) this implementation is semi-threadsafe (as long as the user didn't start an operation outside of his use_effect call (which they shouldn't have under React-style programming). For operations that must run on the main thread, we need a @use_effect(threading: bool = ...) parameter to switch back to legacy behavior.
We could also consider a reactpy.config.USE_EFFECT_WORKERS=... setting to allow users to modify the value of max_workers.
- 主要言語
- Python
- スター
- 8.1k
- フォーク
- 332
- PR マージ指標
- 30日以内にマージされた PR はありません
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
reactive-python/reactpy のほかの issue
-
Outdated GIF in Docs オープンpriority-3-low type-docs
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
reactive-python/reactpy#1034 ·
-
priority-2-moderate type-revision
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
reactive-python/reactpy#1319 ·
-
priority-1-high
難易度 5/5 1週間以上 初心者へのやさしさ 25/100
reactive-python/reactpy#1277 ·
-
priority-3-low
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
reactive-python/reactpy#1273 · リアクション 1 件 ·
-
priority-2-moderate
難易度 5/5 1週間以上 初心者へのやさしさ 30/100
reactive-python/reactpy#1272 · リアクション 2 件 ·
reactive-python/reactpy の issue をすべて見る
似ている issue
-
documentation help wanted
難易度 2/5 1〜3時間 初心者へのやさしさ 90/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 90/100
simonw/sqlite-utils#872 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100