MartinKarjus / compactChatbot

0 stars 0 forks source link

solve chatfuel broadcasting api 25 requests per second problem #20

Open MartinKarjus opened 5 years ago

MartinKarjus commented 5 years ago

(we might call them all at once so we need to implement some counter to wait in line + implement a way to return nothing and then call again or we might get timeout on content request)

RainVagel commented 5 years ago

Mingi Queue üles panna ei lahendaks seda? Et ei lükka korraga, vaid mingi FIFO andmestruktuur? Võtaksin tegelt enda peale selle asja ja üritaks lahendada.

MartinKarjus commented 5 years ago

Jah, mingit queue-d ongi vaja + uuesti kutsed kui mingi asi timeout-ib

Praegu me kasutame chatfueli broadcast API-d kahe bloki kutsumiseks: contentrequester ja specificcontentrequester -

Contentrequester blokk - Meie kutsume broadcast API kaudu selle bloki välja, see omakorda teeb requesti meie API pihta. Me kontrollime, kas on mingi plan, mis sellel useril praeguse seisuga täitmata ja kui on, returnime selle. Specificcontentrequester blokk - Kui plan või question kuhugi järgmisele questionile viitab, siis enne plan-i returnimist kutsume välja async funktsiooni, millega x aja (vastavalt eelmise bloki teksti pikkusele) pärast teeme kutse chatfueli broadcast API-le, kuhu anname kaasa user attribudina question ID, mida järgmisena kutsuda, seejärel specificcontentrequester blokk teeb kutse meie API-le, kus küsib vastuseks selle ID-ga questionit.

Queue peaks siis handlima mõlemaid korraga ja kui request timeoutib, siis kutsuma välja contentrequester blokki või specificcontentrequest blokki uuesti läbi broadcasting API.