#python #multithreading #websocket #cryptocurrency
Вопрос:
У меня есть функция, которая запускает несколько потоков с помощью модуля ThreadedWebsocketManager из binance. Эта функция выглядит следующим образом:
def get_new(stream_entry): twm = ThreadedWebsocketManager(api_key=api_key, api_secret=api_secret) twm.start() streams = stream_entry twm.start_multiplex_socket(callback=add_new_data_values, streams=streams) twm.join()
Теперь, когда я вызываю эту функцию из main, я больше ничего не могу сделать, потому что сама функция не выполняется как поток. Когда я пытаюсь запустить функцию в потоке, она выдает следующую ошибку: «Ошибка времени выполнения: не удается зарегистрировать atexit после завершения работы».
t = threading.Thread(target=get_new, args=(stream_entry,)) t.start()
Когда я ставлю «t.start ()», он снова запускается без сообщения об ошибке, но у меня будет та же проблема, что я не могу одновременно делать ничего другого.
Как заставить функцию get_new() работать как поток, который создает новые потоки с помощью ThreadedWebsocketManager?
Заранее спасибо!
Вся моя основная часть выглядит так, где я пытаюсь напечатать «привет».:
if __name__ == "__main__": with open('buysorsells.txt', 'r ') as f: f.truncate(0) entry_list = get_coins_n_intervals() symbol_entry = entry_list[0] interval_entry = entry_list[1] stream_entry = entry_list[2] lst = get_historical(symbol_entry, interval_entry) t = threading.Thread(target=get_new, args=(stream_entry,)) t.start() print('hello')