Я хочу временно удалить элемент из списка и добавить его обратно через x часов. sleep
не вариант для меня, так как я хочу, чтобы код продолжал работать и не останавливался.
Будучи новичком в Python, я играю с потоками и могу заставить его работать с парой незначительные ошибки.
PS Причина, по которой я хочу удалить элемент из списка на x часов, заключается в следующем; Я получаю floodError
после добавления x количества пользователей в группу при использовании бота Telegram. Мой код перебирает список принадлежащих мне учетных записей, и если одна учетная запись выдает ошибку, я хочу вывести ее из списка на 5 часов.
В любом случае, вот мой код, для этого подхода, как Я останавливаю указанный поток c после того, как add_account
запустился один раз?
Я бы также оценил лучший подход в этом вопросе.
import threading
accounts = [ {"id": 1}, {"id": 2}, {"id": 3}, {"id": 4}, {"id": 5} ]
break_accounts = []
PING_ON = threading.Event()
def remove_account(account):
break_accounts.append(account)
accounts.remove(account)
print(accounts)
print(break_accounts)
t = threading.Thread(target=add_account(account))
t.start()
PING_ON.set()
def add_account(account):
while not PING_ON.wait(20):
break_accounts.remove(account)
accounts.append(account)
print(accounts)
print(break_accounts)
def start():
for account in accounts:
if account["id"] == 4:
remove_account(account)
start()