我对asyncio还比较陌生,我不确定什么是实现我想要的目标的最佳方法
我有几个类,其中一个将实例化其他类的实例。它还将运行一个侦听消息的循环,并在接收到某些消息时调用其他类的方法
问题是这些类还需要运行循环。目前,我在我的主类中有这个,作为__init__
定义中的最后一件事:
...
self.loop = asyncio.new_event_loop()
asyncio.set_event_loop(self.loop)
self.loop.run_until_complete(self.start_services())
self.start_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'])
现在问题来了。作为独立测试,这些类将像这样启动它们的异步函数(这将在__init__
定义的末尾:
loop = asyncio.get_event_loop()
loop.run_until_complete(self.retrieve_real_time_data())
这不起作用,我看了一些文章,但找不到解决方案,尽管我现在知道这就像在作业调度器中启动作业调度器
我尝试过等待,调用一个非异步函数,然后等待self.retrieve_real_time_data()
,但到目前为止没有任何效果
我可以做些什么来轻松地将异步方法添加到正在运行的循环中,在循环运行时从循环内部,以及从__init__
?
目前没有回答
相关问题 更多 >
编程相关推荐