1

我有一个基于 Flask 的程序(对我而言)基本上等同于 SO 答案中的示例https://stackoverflow.com/a/14180227(来源:https ://github.com/stackforge/ironic-discoverd/ blob/master/ironic_discoverd/main.py),简化:

 eventlet.monkey_patch(thread=False)  # change to True to break

 @app.route('/', methods=['GET', 'POST'])
 def api():
    eventlet.greenthread.spawn_n(do_some_job)  # is not called

 def main():
    app.run()

当我使用 eventlet.monkey_patch(thread=False) 一切都很好。当我设置 thread=True 时,eventlet.greenthread.spawn_n(例如https://github.com/stackforge/ironic-discoverd/blob/master/ironic_discoverd/introspect.py#L76)在这里什么都不做,即控制永远不会产生到它,虽然 Flask 应该已经打补丁了。

有任何想法吗?

Eventlet 0.15.2、Python 2.7.5、Flask 0.10.1

4

0 回答 0