Python - AutoShardedBot は discord.py でどのように動作しますか?

okwaves2024-01-25  8

シャーディングの仕組み、具体的には discord.ext.commands.AutoShardedBot について誰かが説明してくれませんか? 以下に複数の質問を記載します。

複数のサーバーで実行されますか? そうでない場合、シャーディングすることにどのようなメリットがあるのでしょうか? ギルドは時々シャードを切り替えることがありますか? ボットが複数のサーバーで実行されている場合、1 つのデータベースを使用するにはどうすればよいですか?

お時間をいただきありがとうございます。



------------------------

「複数のサーバー」を使用する場合は、物理マシンのことですか、いいえ、それは 単一の Python インスタンス。 Discord では 2.5,000 ギルドを超えるシャーディングが必要です。 ギルドは (guild_id >> 22) % shard_count によってシャードに割り当てられます ネットワーク経由でデータベースにアクセスできるようにし、必ず確保してください 強力なパスワードを使用して、それぞれから接続します。

複数のマシンに分割する必要がある場合は、shard_id と shard_count を通常の Bot インスタンスに渡すことができます。

シャーディングに関する Discord ドキュメント

2020 年 9 月 3 日 19:52 に回答

ジャワド

ジャワド

2,001

1

ゴールドバッジ 1 個

7

銀バッジ 7 個

銅バッジ 17 個

銅バッジ 17 個

5

1

1 つのホストのみで実行される場合、シャーディングにはどのような利点がありますか?

– CircuitSacul

2020 年 9 月 3 日 19:53

とても混乱しています。私の質問を明確にしておきたいのですが、ボットをシャーディングした場合、それは 1 つのホストで実行されることを意味しますか、それとも複数のホストで実行されることを意味しますか? 1 つのシャードに複数のギルドがあることはわかっていますが、ホストごとに 1 つのシャードを配置するのか、1 つのホストに複数のシャードを配置するのかがわかりません。

– CircuitSacul

セ2020 年 3 月 20 時 3 分

どちらか一方を意味するわけではありません。複数のホストにまたがってシャーディングする場合、複数のホストで実行されます。複数のホストにまたがらない方法でシャーディングを行う場合は、そうではありません。

– ジャワド

2020 年 9 月 3 日 20:08

1 つのホストに複数のシャードを配置する利点は何ですか?なぜそんなことをするのでしょうか?

– CircuitSacul

2020 年 9 月 3 日 20:10

メモリ/CPU に問題がない場合は、AutoSharded を使用してすべてを同じプロセスで実行できます。CPU には問題があるが、メモリには問題がない場合は、複数のプロセスでシャードを実行できます。メモリの問題がある場合は、複数のホスト間でシャーディングする必要があります。後の 2 つのオプションでは、プロセス間で何らかの方法で通信する必要があります。 1 つ目はそうではありません。オールインワンであり、すべてが内部で処理されるため、シャーディングについて考える必要さえありません。

– ジャワド

2020 年 9 月 3 日 20:14

総合生活情報サイト - OKWAVES
総合生活情報サイト - OKWAVES
生活総合情報サイトokwaves(オールアバウト)。その道のプロ(専門家)が、日常生活をより豊かに快適にするノウハウから業界の最新動向、読み物コラムまで、多彩なコンテンツを発信。