Python 多个类之间的异步

Python 多个类之间的异步,python,python-asyncio,Python,Python Asyncio,我对asyncio还相当陌生,我不确定我要实现的目标的最佳方法是什么 我有几个类,其中一个将实例化其他类的实例。它还将运行一个侦听消息的循环,并在收到某些消息时调用其他类的方法 问题是这些类还需要运行循环。目前,我的主类中有这个,作为\uuuu init\uuudef中的最后一件事: ... self.loop = asyncio.new_event_loop() asyncio.set_event_loop(self.loop) self.loop.run_un

我对asyncio还相当陌生,我不确定我要实现的目标的最佳方法是什么

我有几个类,其中一个将实例化其他类的实例。它还将运行一个侦听消息的循环,并在收到某些消息时调用其他类的方法

问题是这些类还需要运行循环。目前,我的主类中有这个,作为
\uuuu init\uuu
def中的最后一件事:

    ...
    self.loop = asyncio.new_event_loop()
    asyncio.set_event_loop(self.loop)
    self.loop.run_until_complete(self.start_services())
    loop = asyncio.get_event_loop()
    loop.run_until_complete(self.retrieve_real_time_data())
self.start\u services()
随后将继续执行一些操作,等待发送消息以启动服务(一切正常),然后尝试实例化其他类:

    # load TPE services
    self.logger.log(f'Loading services for TPEs: {trading_pair_exchanges}...')
    for tpe in trading_pair_exchanges:
        TradingPairExchangeDataService.TradingPairExchangeDataService(tpe, ['EMA26'])

    # load realtime service
    self.logger.log('Loading RealtimeService...')
    RealTimeDataService.RealTimeDataService(trading_pair_exchanges, ['EMA26'])
现在问题来了。作为独立测试,这些类将像这样启动它们的异步函数(这将在
\uuu init\uu
def的末尾:

    ...
    self.loop = asyncio.new_event_loop()
    asyncio.set_event_loop(self.loop)
    self.loop.run_until_complete(self.start_services())
    loop = asyncio.get_event_loop()
    loop.run_until_complete(self.retrieve_real_time_data())
这不起作用,我看过一些文章,但找不到解决方案,尽管我现在知道这就像在作业调度器中启动作业调度器

我尝试过等待,调用一个非异步函数,然后等待
self.retrieve\u real\u time\u data()
,但到目前为止没有任何效果


我该怎么做才能轻松地将异步方法添加到正在运行的循环中,在循环运行时从循环内部添加,以及从
\uuuuu init\uuuuuu
添加?

我认为这是您正在寻找的正确答案。谢谢您,这似乎奏效了。我认为这是您正在寻找的正确答案。谢谢