0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Discord Botがなぜか二重起動している件

Posted at

はじめに

Discord Botを運用していたとき、なんかメッセージが2回送られているなと思って調べてみたら、なんとBotが二重起動していました。

二重起動していると、メッセージが2回送られてしまうだけでなく、YouTubeのAPIの利用回数が2倍になってしまうなど、いろいろと問題が発生してしまいます。

というわけで、なぜ二重起動しているのかを調査してみました。

なぜ二重起動しているのか

原因が全く分からないので、とりあえずログを見てみることにしました。

docker compose logsで確認してみると、以下のようなものを見つけました。

bot-1  | 2025-03-11 23:49:19 INFO     discord.client logging in using static token
bot-1  | 2025-03-11 23:49:20 INFO     discord.gateway Shard ID None has connected to Gateway (Session ID: XXXXXX).
bot-1  | (botの名前) is ready!
(中略)
bot-1  | 2025-03-13 17:42:25 INFO     discord.gateway Shard ID None session has been invalidated.
bot-1  | 2025-03-13 17:42:31 INFO     discord.gateway Shard ID None has connected to Gateway (Session ID: YYYYYY).
bot-1  | (botの名前) is ready!
(後略)

Shard ID None session has been invalidated. つまり、シェアされたIDが無効になったということです。

その後新しいセッションIDで再接続され、botが再起動している事がわかりました。

原因について

今のところ全くわからないです。通常ならセッションは定期的に更新されるので、おそらく更新の際に何らかのエラーが起きた、ということだと考えています。

Dockerで動かしているので、そのことも関係しているかもしれません。

対処法

二重起動していそうな挙動をしていたら、Dockerコンテナをdownして再起動をすることが効果的だと思いました。定期的にログを見て、起動時の処理が2回以上行われているかを確認すると良いと思います。

できれば、ログを監視して、二重起動が発生した際に通知を送るような仕組みを作ると良いかもしれません。

おわりに

今回は、Discord Botがなぜか二重起動している件について調査してみました。

原因はまだ詳しく分からず、対症療法しかできないので、今後もこういった事態が続くようなら本腰を入れて調査してみようと思いました。

それではまた。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?