Add smart Rate Limiter
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 25/100
- Type d'issue
- Fonctionnalité
- Clarté
- À clarifier
- Activité
- À l'abandon
- Stack technique
- python
- Domaine
- api, backend-api-design, performance
Piste de recherche
Commencez par les gestionnaires de nouvelle tentative intégrés synchrones et asynchrones liés, puis comparez le guide de limitation de débit du Java SDK. Déclinez le comportement demandé sur les clients Web API, Webhook, Audit Logs et SCIM. Le travail est terminé lorsqu’une couche de contrôle du trafic activable en option prend en charge les clients synchrones et asynchrones, avec un stockage extensible des métriques et sans sleep bloquant dans les applications asyncio.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Now that we have a built-in retry handler for rate limited errors in v3.9, retrying a request after getting rate-limited is much easier than before.
- https://github.com/slackapi/python-slack-sdk/releases/tag/v3.9.0
- https://github.com/slackapi/python-slack-sdk/blob/v3.9.1/slack_sdk/http_retry/builtin_handlers.py#L52-L91
- https://github.com/slackapi/python-slack-sdk/blob/v3.9.1/slack_sdk/http_retry/builtin_async_handlers.py#L49-L88
However, getting rate-limited results in a much longer execution time as the whole operation. As a solution for this pain point, we will add a built-in traffic control layer like we do in the Java SDK: https://slack.dev/java-slack-sdk/guides/web-api-basics#rate-limits
A few points to consider for implementing this feature:
- The module manages the amount of requests in the last minute and calculate the interval before the next API call
- Metrics data can be in memory in most use cases but the part should be extensible to switch to other data storage (e.g., Redis)
- As we do in the Java SDK, running the same script/app in multiple hosts should be supported.
- For backward-compatibility, we don't turn the feature on by default. Users can enable it only when they want it.
- Both sync and async API clients should be supported in a proper way (= don't use
time.sleepin asyncio apps) - All API clients (Web API, Audit Logs, SCIM, Webhook) should have the functionality.
Category (place an x in each of the [ ])
- slack_sdk.web.WebClient (sync/async) (Web API client)
- slack_sdk.webhook.WebhookClient (sync/async) (Incoming Webhook, response_url sender)
- slack_sdk.models (UI component builders)
- slack_sdk.oauth (OAuth Flow Utilities)
- slack_sdk.socket_mode (Socket Mode client)
- slack_sdk.audit_logs (Audit Logs API client)
- slack_sdk.scim (SCIM API client)
- slack_sdk.rtm (RTM client)
- slack_sdk.signature (Request Signature Verifier)
Requirements
Please read the Contributing guidelines and Code of Conduct before creating this issue or pull request. By submitting, you are agreeing to those rules.
- Langage dominant
- Python
- Étoiles
- 4k
- Forks
- 857
- Merge moyen
- 1 j 3 h
- PR mergées (30 j)
- 18
Préparer son environnement
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de slackapi/python-slack-sdk
-
needs info server-side-issue
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
slackapi/python-slack-sdk#1961 · 3 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
auto-triage-skip discussion
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 35/100
slackapi/python-slack-sdk#1940 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
chat_postMessage silently forwards thread_id to the API, so a threaded reply posts to the channelOuverteauto-triage-skip enhancement
Difficulté 4/5 3-5 jours Accessibilité débutants 48/100
slackapi/python-slack-sdk#1923 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
auto-triage-skip bug python web-client
Difficulté 3/5 1-2 jours Accessibilité débutants 52/100
slackapi/python-slack-sdk#1853 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
auto-triage-skip bug server-side-issue
Difficulté 3/5 1-2 jours Accessibilité débutants 68/100
slackapi/python-slack-sdk#1847 · 5 commentaires ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de slackapi/python-slack-sdk
Issues similaires
-
needs triage
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
openvinotoolkit/openvino_notebooks#3665 ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 86/100
Les mainteneurs répondent en général sous 1 jour
-
docs
Difficulté 2/5 1-3 heures Accessibilité débutants 88/100
Les mainteneurs répondent en général sous 1 jour
-
benchmark-gap
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour