Помогите асинхронизировать / параллелизировать код

Знаю, заголовок скорее всего не правильный, поэтому поправьте. У меня есть следующий код:

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()

Как я могу изменить этот код, чтобы он асинхронно выполнял функции без использования потоков? Или же, чтобы потоки открывались не асинхронно, а параллельно / асинхронно. На деле функции намного сложнее, и на их выполнение нужно время, и ждать пока все функции выполнятся это совсем не то.


Ответы (0 шт):