@sss111sss

Как асинхронно запустить несколько ботов в Discord?

У меня есть 6 дискорд ботов, которые должны писать в чат на сервер если переменная принемает нужное значение. При запуске всех 6 скриптов ( в которых хранятся коды ботов ), работу начинает только 1. Остальные запускаются, но просто сидят в онлайне и дальше ничего не происходит. Первый бот в свою очередь продолжает печатать
Как можно реализовать их асинхронный запуск так, чтобы следующий бот начинал работу, даже если предыдущий не закончил работу?

Код запуска всех 6 скриптов:
import concurrent.futures
import subprocess

# List of bot scripts
bot_scripts = ['bot1.py', 'bot2.py', 'bot3.py,', 'bot4.py', 'bot5.py', 'bot6.py']

def run_bot(script):
process = subprocess.Popen(['python', script])
return process

if __name__ == '__main__':
with concurrent.futures.ThreadPoolExecutor() as executor:
futures = {executor.submit(run_bot, script): script for script in bot_scripts}

for future in concurrent.futures.as_completed(futures):
script = futures[future]
try:
future.result()
except Exception as exc:
print(f'Bot script {script} terminated with an exception: {exc}')
else:
print(f'Bot script {script} finished execution.')
  • Вопрос задан
  • 90 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы