Помогите асинхронизировать / параллелизировать код
Знаю, заголовок скорее всего не правильный, поэтому поправьте. У меня есть следующий код:
import json
import websocket
import threading
from time import sleep
class Socket:
def __init__(self):
self.workers = {"message": []}
self.url = ""
def on_ping(self, data):
self.socket.sock.pong(data)
def on_message(self, data):
self.message(data)
def start(self):
self.headers = {}
self.socket = websocket.WebSocketApp(f"{self.url}", on_message = self.on_message, header = self.headers)
Thread(target = self.socket.run_forever, kwargs = {"ping_interval": 60}).start()
#messages: hello; private; world;
def event(self):
def registerHandler(handler):
self.workers["message"].append(handler)
return handler
return registerHandler
def message(self, data):
data = json.loads(data)
for handler in self.workers["message"]:
handler(data)
def hello(data, content):
sleep(4)
print("hello")
def world(data, content):
sleep(1.5)
print("world")
datas = {"hello": hello, "world": world}
@Socket.event()
def message(data):
content = data["message"]
if content in datas:
threading.Thread(terget=content, args=(data, content)).start()
Как я могу изменить этот код, чтобы он асинхронно выполнял функции без использования потоков? Или же, чтобы потоки открывались не асинхронно, а параллельно / асинхронно. На деле функции намного сложнее, и на их выполнение нужно время, и ждать пока все функции выполнятся это совсем не то.