私は電報ボットを構築しています。最初は、API ラッパーの例の構造を使用しました。py スクリプトには、テレグラム API をポーリングしてボットの新しいメッセージを取得する無限ループがあります。そして、新しいメッセージを 1 つずつ処理します。
while True:
for update in bot.getUpdates(offset=LAST_UPDATE_ID, timeout=10):
chat_id = update.message.chat.id
update_id = update.update_id
if update.message.text:
#do things with the message \ start other functions and so on
私がすでに予見しているのは、いくつかのメッセージ\リクエストでは、処理時間が長くなり、他のメッセージが同時に来た場合は待機することです。ユーザーにとっては、応答が遅れているように見えます。これは単純な依存関係に要約されます。ユーザーのチャットが増える = 遅延が増えるということです。
私はこれを考えていました: このメイン スクリプトbot.py
を実行して、新しいメッセージをチェックし、メッセージが到着するたびに確認できますか? このスクリプトはanswer.py
、メッセージの処理と返信を行う別のスクリプトを開始します。
そして、これらのanswer.py
スクリプトを必要な数だけ並行して開始します。
また、メッセージを送信しているユーザーに関する参照データを使用bot.py
して、すべての着信を DB に記録し、別のプロセスで新しく記録されたすべてのデータを処理して応答済みとしてマークすることもできますが、新しい各エントリをそれぞれに並行して処理する必要があります。他の。
私は Python の第一人者ではなく、これにアプローチする方法についていくつかのアイデアやガイダンスを求めていますか? ありがとうございました!