¿Qué te gustaría que hiciéramos?
Tenemos un componente de tema personalizado (el “Bio Book”) que recientemente comenzó a devolver errores 429. Esto empezó el 26 de noviembre. Antes funcionaba correctamente.
El Bio Book modifica la ruta /u para mostrar la información del usuario de una manera más atractiva. Para ello, también solicitaba información adicional de cada archivo .json de los usuarios. El Bio Book implementaba la carga diferida para evitar errores 429, pero eso dejó de funcionar hace cuatro días. No estoy seguro de qué ocurrió hace cuatro días, pero el equipo de Discourse ha confirmado que no se realizaron cambios en el límite de solicitudes.
El desarrollador que originalmente creó el componente para nosotros no está disponible para realizar esta corrección, por lo que necesitamos a alguien que pueda integrarse en el código existente y resolver el(los) error(es) para que el componente de tema personalizado vuelva a funcionar.
No queremos ninguna funcionalidad nueva, no necesitamos cambiar ninguna funcionalidad existente y no queremos refactorizar nada. Solo queremos resolver los errores 429 y devolver al Bio Book su funcionalidad anterior.
¿Cuándo lo necesitas?
Nos gustaría que estuviera completado para el lunes 6 de enero de 2020.
¿Cuál es tu presupuesto, en dólares estadounidenses (USD), que puedes ofrecer por esta tarea?
Nuestro presupuesto es de 250 $ para resolver los errores 429.
Entendemos que resolver los errores 429 solucionará todos los problemas subyacentes. Si no fuera así, por favor háznoslo saber y ajustaremos nuestro presupuesto en consecuencia.
Por lo tanto, la carga diferida se realiza en grupos de 50 usuarios, y el valor predeterminado de max_reqs_per_ip_per_10_seconds también está establecido en 50. Incluyendo la página principal, este código realizará al menos 51 solicitudes (en menos de 10 segundos), por lo que supera el límite de velocidad.
En otras palabras: no veo cómo esto podría haber funcionado antes…?
Hacemos clic en el límite de velocidad globalmente para todas las instancias de Discourse en todo el mundo la semana pasada. Podemos investigar el plugin la próxima semana y ver si hay una API por lotes razonable que pueda usar en su lugar.
¡Guau, recientemente me encontré con el mismo problema por una razón muy similar (obtener información de usuario para mostrar tarjetas!), implementé un pequeño truco para solucionarlo por el momento, y vine a los foros literalmente para averiguar si había una API por lotes que no conocía… o para aprender cómo implementar una ruta así.
Acabo de revisar el componente del tema. Efectivamente, introduce una cantidad enorme de trabajo y un gran número de requisitos. La limitación de velocidad que implementamos es totalmente correcta en este caso, actuando como un sistema inmunológico.
Vamos a resolver esto, pero puede tardar una o dos semanas en completarse todo.
Parece que la gran cuestión aquí es que necesitas que el directorio comience a devolver toda la información que tienen las tarjetas de usuario. Lo complicado es que los componentes del tema no tienen la capacidad de modificar el servidor, por lo que necesitaremos realizar un cambio en la API central que nos permita solicitar tarjetas de usuario para varias personas de una sola vez.
Te mantendremos informado a medida que avancemos. Un dato rápido sobre el presupuesto: haremos esto de forma gratuita, pero calculo que se requieren unos dos días de trabajo para reparar esto, lo cual está muy por encima del presupuesto inicial. Parece simple a primera vista, pero requiere cambios internos muy complejos.
Gracias, @sam y equipo, esto es enormemente útil. Los cambios principales en la API sin duda nos beneficiarán a nosotros y, imagino, a otros usuarios de Discourse. Me alegra que podamos utilizar Bio Book y hacerlo funcionar de manera más lógica. Una o dos semanas nos viene bien.
Entiendo lo del presupuesto inicial y el alcance de la corrección. Es muy generoso de tu parte hacerlo sin costo. Gracias.