Найти - Пользователи
Полная версия: Как остановить выполнение всех потоков при помощи команды боту Telegram?
Начало » Python для новичков » Как остановить выполнение всех потоков при помощи команды боту Telegram?
1
Dyusha
Пытаюсь создать бота Telegram на python. Этот бот по команде пользователя запускает многопоточность с разными циклами выполнения задачи. Мне необходимо сделать так, чтобы пользователь при вводе команды (в данном случае это /start) с определенным значением, например /start stop (значение stop), останавливал все потоки, а потом снова мог их успешно запустить командой.

 def startarg(arg):
    return arg.split()[1]
@bot.message_handler(commands=["start"])
def start(message):
    for i in range(1):
        try:
            start = startarg(message.text)
            bot.send_message(message.chat.id, 'Запущено')
        except:
            start = 'error'
            break
    if start == 'error':
        bot.send_message(message.chat.id, 'Вы не указали значение!')
    else:
        if start[0] == '1':
            start = '+'+start
    def some_0():
        while True:
            try:
            except:
                pass
    def some_1():
        while True:
            try:
            except:
                pass
                    
    def some_2():
        while True:
            try:
            except:
                pass
    th_0, th_1, th_2 = Thread(target=some_0), Thread(target=some_1), Thread(target = some_2)
    if __name__ == '__main__':
        th_0.start(), th_1.start(), th_2.start()
        th_0.join(), th_1.join(), th_2.join()
py.user.next
Тебе надо сделать поток, управляющий потоками, и подписать его на сигнал перезапуска потоков. Когда команда будет поступать снаружи, при этом событии нужно подавать сигнал управляющему потоку, чтобы он отдал команды потокам остановиться/запуститься, которыми управляет.

Так что, возможно, это ещё рановато для тебя. Поучись сначала.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB