電報ボットは、人間のようなやり取りを行うことになっています。したがって、あなたの問題を回避するための私のアドバイスは、ソートTYPINGSPEED
定数を定義し、それをボットAPI呼び出しと組み合わせてsendChatAction()
、メッセージが実際に「高速タイピング」の人間によって書かれているように「感じる」ようにすることです。
ルビーでは、次のようになります。
your_msg.split("\n").each do |line|
writing_time=line.length/TYPINGSPEED
TelegramBot.client.api.sendChatAction(chat_id: chat_id, action: "typing")
sleep(writing_time)
TelegramBot.client.api.sendMessage(your_options)
end
sendChatActionは、ユーザー画面に "nameofyourbot is writing..." を適切に表示します。
もちろん、このコードの欠点は、メッセージが長い場合 (sleep
関数を使用しているため)、応答を処理するプロセスが数秒以内に返らないことです。そのため、ボットを使用する同時ユーザーの数に応じて、キャパシティ プランニングを行い、必要な数の並列ディスカッションをボットが処理できることを確認するために必要な数のプロセスを生成することをお勧めします。
私はこれを自分で行っていますが、あなたが説明している問題を経験したことはありません。