Cosa vorresti che fosse fatto?
Abbiamo un componente di tema personalizzato (il “Bio Book”) che ha iniziato recentemente a restituire errori 429. Questo è iniziato il 26 novembre. Prima di allora funzionava correttamente.
Il Bio Book modifica la rotta /u per visualizzare le informazioni dell’utente in modo più elegante. Per farlo, richiedeva anche informazioni aggiuntive sul file .json di ciascun utente. Il Bio Book utilizzava il lazy loading per evitare errori 429, ma questa funzionalità ha smesso di funzionare quattro giorni fa. Non sono sicuro di cosa sia successo quattro giorni fa, ma il team di Discourse ha confermato che non ci sono state modifiche ai limiti di richiesta.
Lo sviluppatore che ha originariamente creato il componente per noi non è disponibile per occuparsi di questa correzione, quindi abbiamo bisogno di qualcuno che possa entrare nel codice esistente e risolvere l’errore o gli errori, in modo che il componente di tema personalizzato torni a funzionare.
Non vogliamo nuove funzionalità, non dobbiamo modificare quelle esistenti e non vogliamo effettuare refactoring. Vogliamo solo risolvere gli errori 429 e ripristinare il Bio Book alla sua funzionalità precedente.
Quando hai bisogno che sia completato?
Vorremmo che fosse completato entro lunedì 6 gennaio 2020.
Qual è il tuo budget, in $ USD, che puoi offrire per questo compito?
Il nostro budget è di 250 $ per la risoluzione degli errori 429.
La nostra comprensione è che la risoluzione degli errori 429 risolverà tutti i problemi sottostanti. Se non fosse così, faccelo sapere e aggiorneremo il nostro budget di conseguenza.
Quindi il lazy loading avviene in gruppi di 50 utenti, e il valore predefinito per max_reqs_per_ip_per_10_seconds è impostato anch’esso a 50. Incluso il codice della pagina principale, verranno effettuate almeno 51 richieste (in meno di 10 secondi), superando quindi il limite di velocità.
In altre parole: non vedo come questo abbia mai potuto funzionare prima…?
Allora funziona correttamente. Che peccato. Sarebbe stato molto più semplice risolvere un problema di configurazione rispetto a quanto descrive Richard.
Abbiamo appena attivato il limite di velocità a livello globale per tutte le istanze di Discourse ovunque. La prossima settimana potremo investigare sul plugin e vedere se esiste un’API batch ragionevole che possa utilizzare al suo posto.
Wow, ho appena incontrato lo stesso problema per un motivo molto simile (recuperare le informazioni dell’utente per visualizzare le card!), ho implementato un piccolo workaround per risolverlo temporaneamente e sono venuto sui forum proprio per scoprire se esistesse un’API batch che non conoscevo… o per imparare come implementare una tale rotta.
Scusa Alex, ho sbagliato a risponderti la settimana scorsa. Non avevo realizzato che non avessimo ancora distribuito quella modifica da un po’ di tempo.
Per ora mi fermo su questo progetto finché non ricevo una risposta da @sam e dal team riguardo all’esistenza di un’API batch ragionevole che possiamo utilizzare al posto di questa.
Ho appena dato un’occhiata al componente del tema. Effettivamente introduce un’enorme quantità di lavoro e un numero enorme di requisiti. Il rate limiting che abbiamo implementato è assolutamente corretto qui, come un sistema immunitario.
Risolveremo la questione, ma potrebbero volerci una o due settimane per portare a termine tutto.
A mio avviso, il grosso problema è che hai bisogno che la directory restituisca tutte le informazioni presenti nelle schede utente. La cosa complicata è che i componenti del tema non hanno la possibilità di modificare il server, quindi dovremo apportare alcune modifiche all’API principale che ci permettano di richiedere le schede utente per più persone in una sola volta.
Ti aggiorneremo man mano che faremo progressi. Una rapida nota sul budget: faremo questo lavoro gratuitamente, ma stimo circa due giorni di lavoro per risolvere il problema, il che è molto superiore al budget iniziale previsto. Sembra semplice in superficie, ma richiede modifiche interne molto complesse.
Grazie @sam e al team, questo è estremamente utile. Le modifiche principali all’API ci serviranno sicuramente, e immagino anche ad altri utenti di Discourse. Sono felice che potremo utilizzare il Bio Book e renderlo più funzionale. Una o due settimane vanno bene per noi.
Capisco la questione del budget iniziale e dell’ambito della correzione. È estremamente generoso da parte tua offrire questo intervento gratuitamente. Grazie.