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