栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在python中的websocket循环外运行函数(tornado)

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在python中的websocket循环外运行函数(tornado)

你可以打电话给

IOLoop.add_timeout(deadline, callback)

在指定的最后期限超时(一次射击,但您可以重新安排)时调用回调,或使用

tornado.ioloop.PeriodicCallback
如果您有更定期的任务。

请参阅:http
:
//www.tornadoweb.org/en/stable/ioloop.html#tornado.ioloop.IOLoop.add_timeout

更新:一些例子

import datetimedef test():    print "scheduled event fired"...if __name__ == "__main__":    http_server = tornado.httpserver.HTTPServer(application)    http_server.listen(8888)    main_loop = tornado.ioloop.IOLoop.instance()    # Schedule event (5 seconds from now)    main_loop.add_timeout(datetime.timedelta(seconds=5), test)    # Start main loop    main_loop.start()

test()
在5秒钟后呼叫。

更新2:

import os.pathimport tornado.httpserverimport tornado.websocketimport tornado.ioloopimport tornado.web# websocketclass FaviconHandler(tornado.web.RequestHandler):    def get(self):        self.redirect('/static/favicon.ico')class WebHandler(tornado.web.RequestHandler):    def get(self):        self.render("websockets.html")class WSHandler(tornado.websocket.WebSocketHandler):    def open(self):        print 'new connection'        self.write_message("Hi, client: connection is made ...")        tornado.ioloop.IOLoop.instance().add_timeout(datetime.timedelta(seconds=5), self.test)    def on_message(self, message):        print 'message received: "%s"' % message        self.write_message("Echo: "" + message + """)        if (message == "green"): self.write_message("green!")    def on_close(self):        print 'connection closed'    def test(self):        self.write_message("scheduled!")handlers = [    (r"/favicon.ico", FaviconHandler),    (r'/static/(.*)', tornado.web.StaticFileHandler, {'path': 'static'}),    (r'/', WebHandler),    (r'/ws', WSHandler),]settings = dict(    template_path=os.path.join(os.path.dirname(__file__), "static"),)application = tornado.web.Application(handlers, **settings)import datetimeif __name__ == "__main__":    http_server = tornado.httpserver.HTTPServer(application)    http_server.listen(8888)    tornado.ioloop.IOLoop.instance().start()


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/624675.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号