matrix-org / matrix-org/matrix-python-sdk
No rate limiting
Offen
Dieses Issue hat noch niemand übernommen.
Api layer
architecture
enhancement
- Vorherrschende Sprache
- Python
- Sterne
- 266
- Forks
- 118
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
~/Projects/mcat $ cat mcat.py | env/bin/python mcat.py --room "!CJDvntNEPGQmykeIrB:whatthefuck.computer" --stdin -c ~/.mcatrc
Traceback (most recent call last):
File "mcat.py", line 55, in <module>
mcat.f_to_matrix(sys.stdin)
File "mcat.py", line 24, in f_to_matrix
self.room.send_text(line)
File "/home/rrix/Projects/mcat/env/lib/python2.7/site-packages/matrix_client/client.py", line 169, in send_text
return self.client.api.send_message(self.room_id, text)
File "/home/rrix/Projects/mcat/env/lib/python2.7/site-packages/matrix_client/api.py", line 194, in send_message
self.get_text_body(text_content, msgtype)
File "/home/rrix/Projects/mcat/env/lib/python2.7/site-packages/matrix_client/api.py", line 183, in send_message_event
return self._send("PUT", path, content)
File "/home/rrix/Projects/mcat/env/lib/python2.7/site-packages/matrix_client/api.py", line 319, in _send
code=response.status_code, content=response.text
matrix_client.api.MatrixRequestError: 429: {"errcode":"M_LIMIT_EXCEEDED","error":"Too Many Requests","retry_after_ms":1214}
The javascript SDK implements a fairly complex queuing system, I'm going to strawman something similar to that, shortly.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit dem in matrix_client/api.py gezeigten Sendepfad, insbesondere send_message_event und _send, und vergleiche ihn mit dem verlinkten Scheduler von matrix-js-sdk. Der traceback des Issues zeigt Matrix-Antworten zur Ratenbegrenzung mit retry_after_ms; als abgeschlossen gilt die Aufgabe erst mit einem abgestimmten Warteschlangen- oder Wiederholungsdesign, das diese Antworten behandelt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- javascript, python
- Bereich
- api, backend
- Issue-Typ
- Feature
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 25/100