Многопроцеcсорность в python и telebot
Я пишу своего первого бота на telebot и у меня возникли проблемы с многопроцессорностю. Есть файл main и есть несколько файлов которых нужно запустить одновременно.
Но я не могу их как-то запустить , буду очень благодарен если поможете , заранее благодарю.
Ответы (2 шт):
Автор решения: Alex Zab
→ Ссылка
Я Вам рекомендую записать все команды бота в один файл как функции и запускать эти функции с помощью threading, к примеру -
import telebot
import time
import threading
bot = telebot.TeleBot("token")
@bot.message_handler(commands=['start'])
def hello(message):
bot.send_message(message.chat.id, "Привет!")
time.sleep(86400)
threading.Thread(target = hello, args = (1,), daemon = True).start()
@bot.message_handler(commands=['help'])
def help(message):
bot.send_message(message.chat.id, "Помощь!")
time.sleep(3600)
threading.Thread(target = help, args = (1,), daemon = True).start()
@bot.message_handler(commands=['else'])
def else(message):
bot.send_message(message.chat.id, "Другое!")
time.sleep(60)
threading.Thread(target = else, args = (1,), daemon = True).start()
bot.polling(none_stop=True)
Автор решения: inzem77
→ Ссылка
Используй модуль multiprocessing
import multiprocessing as mp
def start_bot(token)
"""
тут функция, которая стартуе бота
"""
pass
if __name__ == '__main__':
bots_token = ['token1', 'token2']
for token in bots_token:
mp.set_start_method('fork')
mp.Process(target=f, args=(token)).start()