

このようなBotを作っています。

  * 毎日挨拶を行うBot
  * guildごとに何時何分にあいさつするかを設定できる

on_readyでwhile
Trueループを使ってみようと思っているのですが、問題はボットの通知対象guildが多くて、単純なループでは処理できない点です。  
並列実行しないといけません。

このようなBotを作ったことがある人、そうでない人も、何か解決策を教えてください。


CC BY-SA 4.0
2018-11-11T03:34:26.127
50195
2022-06-12T05:01:55.290
29212
question
python python3 discord
discord.pyを並列処理のスレッド内で動かしたい

  * 挨拶する時間、挨拶する相手、挨拶の内容（＋補足情報）のクラスを作る
  * 上記クラスに`self`の情報を元に投稿する`挨拶`メソッドを定義する
  * インスタンスが作成されたら、挨拶する時間をキーに`Dictionary`に登録する
  * `n`分毎に繰り替えすメインループ又は`Timer`ループ内で、`Dictionary`から現在時刻がキーのインスタンスを取得する
  * 現在時刻キーのインスタンスが`Dictionary`になければなにもしない
  * インスタンスが存在すれば、`挨拶`メソッドを実行する

上記手法でスレッド１本でbot化出来る様な気がします。お試し下さい。


CC BY-SA 4.0
2018-11-11T04:49:02.137
50200
2018-11-11T04:49:02.137
14745
50195
answer


`client.loop.create_task(関数)`というものを発見しました。  
ありがとうございました。


CC BY-SA 4.0
2018-11-11T05:48:00.330
50201
2018-11-11T05:48:00.330
29212
50195
answer