Merhaba arkadaşlar, bu konuda Discord botlarınızda **ShardingManager** ile botunuzu shard’lara ayırmayı göstereceğim.
Bu yöntem özellikle çok sunuculu botlarda **performans ve stabilite** sağlar.
---
---
---
Bu yapı ile botunuz büyük sunucularda daha stabil çalışır ve performans problemlerini azaltabilirsiniz.
Bu yöntem özellikle çok sunuculu botlarda **performans ve stabilite** sağlar.
Özellikler
- Çok sunuculu botlar için otomatik shard yönetimi
- Shard başlatma ve günlük loglama
- Manuel veya otomatik shard sayısı belirleme
---
ShardingManager Kodu
Kod:
// ShardingManager'ı discord.js'den içe aktarın
const { ShardingManager } = require("discord.js");
// Yapılandırma dosyasını içe aktar
const config = require("./config.json");
// Eski başlangıç dosyanızın genellikle index.js olarak adlandırıldığı dosyayı kullanın
const shards = new ShardingManager("./index.js", {
token: config.token, // Bot token
totalShards: "auto", // "auto" ile bot sunucu sayısına göre otomatik shard açar
// isterseniz manuel shard sayısı belirleyebilirsiniz:
// totalShards: 2
});
// Shard oluşturulduğunda günlük logu
shards.on("shardCreate", shard =>
console.log(` || <==> || [${String(new Date()).split(" ", 5).join(" ")}] || <==> || Başlatılan Shard #${shard.id} || <==> ||`)
);
// Shardları başlat
shards.spawn(shards.totalShards, 10000);
// Not: Botu çalıştırmak için "node shards.js" komutunu kullanın
---
Açıklama
- **ShardingManager**: Botu shard’lara ayıran ve yöneten sınıftır.
- **totalShards: "auto"**: Sunucu sayısına göre otomatik shard sayısı belirler.
- **shards.spawn()**: Tüm shard’ları başlatır, ikinci parametre ile başlatma gecikmesini milisaniye olarak belirleyebilirsiniz.
- **shardCreate event**: Her shard açıldığında log verir.
---
