matrix-org / matrix-org/matrix-python-sdk
No rate limiting
Abierto
Nadie ha tomado este issue todavía.
Api layer
architecture
enhancement
- Lenguaje dominante
- Python
- Estrellas
- 266
- Forks
- 118
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
~/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.
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza con la ruta de envío mostrada en matrix_client/api.py, especialmente send_message_event y _send, y compárala con el scheduler enlazado de matrix-js-sdk. El traceback del issue muestra respuestas de limitación de tasa de Matrix con retry_after_ms; para darlo por terminado sería necesario acordar un diseño de cola o reintentos que gestione estas respuestas.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- javascript, python
- Área
- api, backend
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Estancado
- Claridad
- Necesita aclaración
- Aptitud para principiantes
- 25/100