⚡ Bolt: Short-circuit Qobuz app secret validation#57
Draft
davidjuarezdev wants to merge 1 commit intomainfrom
Draft
⚡ Bolt: Short-circuit Qobuz app secret validation#57davidjuarezdev wants to merge 1 commit intomainfrom
davidjuarezdev wants to merge 1 commit intomainfrom
Conversation
Optimize `_get_valid_secret` to return the first successful valid secret and cancel remaining tasks, preventing tail-latency. Co-authored-by: davidjuarezdev <230496599+davidjuarezdev@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
💡 What: Modified
_get_valid_secretinstreamrip/client/qobuz.pyto useasyncio.as_completedand cancel remaining background requests once a valid secret is found, instead of usingasyncio.gather.🎯 Why: To prevent "tail latency". When testing multiple secrets,
asyncio.gatherwaits for all requests to finish (even invalid ones that might be slow or timeout) before returning the valid secret. Usingas_completedallows us to short-circuit the execution and return the fast, valid response immediately.📊 Impact: Speeds up the Qobuz login and secret-fetching phase. Instead of being blocked by the slowest invalid request (potentially taking several seconds), it now completes as fast as the quickest valid response.
🔬 Measurement: Verify by executing
PYTHONPATH=. poetry run pytest tests/test_qobuz_client.pyand noting the faster execution time for login tasks, as well as observing the clean termination of the asyncio loop without background leaks.PR created automatically by Jules for task 4619569938749258132 started by @davidjuarezdev