Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Gevent被烧瓶堵住,甚至使用猴子贴片_Python_Flask_Gevent_Flask Restful_Greenlets - Fatal编程技术网

Python Gevent被烧瓶堵住,甚至使用猴子贴片

Python Gevent被烧瓶堵住,甚至使用猴子贴片,python,flask,gevent,flask-restful,greenlets,Python,Flask,Gevent,Flask Restful,Greenlets,我正在使用flask+gevent构建我的服务器,但是名为“getall”的gevent被flask阻止,因此“getall”函数无法在此代码中打印消息。猴子补丁正在使用中 import time import WSGICopyBody from flask import Flask import gevent def handle_node_request() : while True : print 'in handle_node_request'

我正在使用flask+gevent构建我的服务器,但是名为“getall”的gevent被flask阻止,因此“getall”函数无法在此代码中打印消息。猴子补丁正在使用中

import time
import WSGICopyBody
from flask import Flask
import gevent

def handle_node_request() :
    while True :
        print 'in handle_node_request'
        gevent.sleep(1)

def getall() :
    print 'in getall'

def create_app() :
    app = Flask(__name__)

    app.wsgi_app = WSGICopyBody.WSGICopyBody(app.wsgi_app)
    app.add_url_rule('/node',
                     'handle_node_request',
                     handle_node_request,
                     methods=['GET', 'PUT', 'POST', 'DELETE'])
    return app

if __name__ == "__main__":
    app = create_app()
    from gevent import monkey
    monkey.patch_all()
    gevent.joinall([
            gevent.spawn(app.run(host='0.0.0.0', port=8899, debug=True)),
            gevent.spawn(getall),
        ]) 

您需要将函数和参数传递给
spawn
,后者将在单独的eventlet中使用这些参数调用函数,但现在您实际调用的是
run
,直到您杀死它之后才会结束

gevent.spawn(app.run, host='0.0.0.0', port=8899, debug=True)

另一方面,这似乎不是使用Gevent运行烧瓶的正确方法。描述使用。此外,您应该在生产环境中使用真正的应用程序服务器(即,当您不在“localhost”上运行时)。并且都能够使用Gevent处理请求