Så din bot möts av ett felmeddelande gällande hastighetsbegränsning.
Hastighetsgräns för API
Om vår hastighetsgräns överskrids (för närvarande, 50 förfrågningar per sekund), kommer API:n skicka tillbaka svarskod HTTP 42. Gränsen för ogiltiga förfrågningar är för närvarande 10 000 per 10 minuter. Om din bot däremot tillfälligt blir CloudFlare-avstängd från API:n är det högst troligen inte en global hastighetsbegränsning utan mer sannolikt en samling fel som inte hanterades korrekt.
Första saken vi vill poängtera är att vi under väldigt få omständigheter höjer höjer den globala hastighetsbegränsningen för applikationer. De goda nyheterna är att det finns tillgängliga lösningar som vi uppmanar utvecklare att kolla in när de bygger sina appar.
Vi vill också nämna att slutpunkter för interaktion inte är bundna till hastighetsgränsen. Så att migrera funktionalitet till applikationskommandon där det är möjligt är en annan lösning. Ta definitivt en titt på vår dokumentation om det här, eller dokumentationen för biblioteket du valt att använda.
Hastighetsgränser för Gateway
För att skicka data till/från Discord måste din applikation ansluta till en websocket. Partitionering är i allmänhet den bästa metoden för applikationer särskilt som de växer och fortsätter eskalera på Discord. Det är ett träffsäkert sätt att jobba inte riktigt runt.. men inom våra API-hastighetsgränser. Partitionering öppnar flera websockets så data kan utbytas genom alla dessa anslutningar snarare än att överbelasta en.
shard_id = (guild_id >> 22) % num_shards
Trafik från instanser/servrar kommer att hänvisas till en partition (öppen websocket) och deras förfrågningar körs parallellt till varandra för att hålla sig under den globala hastighetsgränsen. Tänk dig partitionering som att dela din bot i flera kopior av sig själv. Det är helt användarkontrollerat och görs bara enklare av ditt valda bibliotek!
Med hänsyn till partitionering av stora botar och en ökad global hastighetsgräns är detta tjänster vi endast kan erbjuda botar som är aktiva i 150 000 servrar eller fler. Du kan läsa mer om hur dessa förfrågningar fungerar i vår dokumentation: https://discord.com/developers/docs/topics/gateway#sharding-for-very-large-bots
Du kan läsa mer om hur du finjusterar och konfigurerar partitioner här.