tornado用多线程@run_on_executor报错There is no current event loop in thread

from tornado.concurrent import run_on_executor

  @run_on_executor

  def Timing_send(self, cmd):

    while 1:

      self.sendMsg(cmd)

      time.sleep(1)

网上找了几个帖子都讲的不明确,如何在tornado里正确的使用多线程

你是不是在后台线程处理的,

试试这个

from tornado.platform.asyncio import AnyThreadEventLoopPolicy
asyncio.set_event_loop_policy(AnyThreadEventLoopPolicy())

放到启动函数里吗?

def main():

  from tornado.platform.asyncio import AnyThreadEventLoopPolicy

  asyncio.set_event_loop_policy(AnyThreadEventLoopPolicy())

  load_path()

  logger = load_log()

  logger.info('加载数据库')

  make_db()

  logger.info('加载url')

  server = make_app()

  logger.info('启动自动化测试服务')

  server.listen(8888)

  Common.CommonVar.loop = tornado.ioloop.IOLoop.instance()

  Common.CommonVar.loop.start()





if __name__ == '__main__':

  main()