Zatem twój bot dostaje kodem błędu limitu zapytań.
Ograniczenia wysyłania zapytań API
Jeśli limit zapytań zostanie przekroczony (w chwili obecnej 50 zapytań na sekundę), API zwróci błąd odpowiedzi HTTP 429. Limitem nieprawidłowych zapytań jest aktualnie 10000 zapytań na 10 minut. Jednakże, jeśli twój bot zostanie zbanowany z API przez Cloudflare, najprawdopodobniej nie będzie to spowodowane problemem z globalnym limitem, ale nagłym skokiem w ilości błędów, które nie zostały prawidłowo obsłużone.
Pierwszą rzeczą na jaką chcemy zwrócić uwagę jest to, że my w bardzo niewielu okolicznościach podnosimy globalne limity dla aplikacji. Dobre wieści są takie, że są dostępne metody na obejście problemu, do których przejrzenia zachęcamy deweloperów, kiedy budują swoje aplikacje.
Chcemy też wspomnieć, że punkty końcowe interakcji nie podlegają limitom. Wobec czego przejście funkcjonalności na komendy tam gdzie to możliwe mogłoby być kolejnym rozwiązaniem. Koniecznie rzućcie okiem na naszą dokumentację na ten temat lub na dokumentację biblioteki waszego wyboru.
Ograniczenia wysyłania zapytań do bramy
Aby wysyłać dane na/z Discorda, twoja aplikacja łączy się z websocketem. Tak zwany sharding jest generalnie najlepszą praktyką do stosowania dla aplikacji, w szczególności kiedy stale rosną i poszerzają zasięg na Discordzie. Jest to sprawdzona metoda, która sprawi, że twoja aplikacja nie będzie przekraczać naszych limitów API bez uciekania się do ich obchodzenia. Sharding otwiera kilka websocketów, w związku z czym wymiana danych może nastąpić we wszystkich z tych połączeń, zamiast obciążać jedno.
shard_id = (guild_id >> 22) % num_shards
Ruch z gildii/serwerów będzie skierowany do sharda (otwartego websocketu), a zapytania będą wysyłane równolegle do siebie, aby pozostać poniżej globalnego limitu zapytań. Pomyśl o shardingu jak o klonowaniu swojego bota. Jest to w pełni kontrolowane przez użytkownika i uproszczone przez bibliotekę twojego wyboru!
Jeśli chodzi o sharding ogromnych botów i zwiększone globalne limity, są to usługi, które możemy zaoferować tylko botom operującym na 150 tyś. i więcej serwerów. Możesz dowiedzieć się więcej o tym jak to działa w naszej dokumentacji: https://discord.com/developers/docs/topics/gateway#sharding-for-very-large-bots.
Natomiast więcej informacji o tym jak dostroić i skonfigurować shardy znajdziesz tutaj.