微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 gevent 等待 threading.Condition

如何解决如何使用 gevent 等待 threading.Condition

我正在编写基于 Flask 的 WebSocket 应用程序。 我的试用代码如下。

Observable<[string,number]>

如果我将 import json import datetime import time import time import gevent from gevent.pywsgi import WsgiServer from geventwebsocket.handler import WebSocketHandler from flask import Flask,request,render_template app = Flask(__name__) app.config.from_object(__name__) @app.route('/') def index(): return "Hello" @app.route('/pipe') def pipe(): print("Entry") if request.environ.get('wsgi.websocket'): ws = request.environ['wsgi.websocket'] while True: gevent.sleep(1) # time.sleep(1) datetime_Now = datetime.datetime.Now() data = { 'time': str(datetime_Now),'message': "Hello" } ws.send(json.dumps(data)) print(data) print("Exit") return '' if __name__ == '__main__': app.debug = True host = 'localhost' port = 8080 host_port = (host,port) server = WsgiServer( host_port,app,handler_class=WebSocketHandler ) server.serve_forever() 替换为 gevent.sleep(),那么对该 Flask 应用程序的整个 HTTP 请求都会被阻止,因为 time.sleep() 永远不会产生 WsgiServer,而 time.sleep() 会这样做。

现在我想等待 threading.Condition 而不是专门的睡眠时间。 在等待 threading.Condition 时有什么好的方法可以产生 gevent 吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。