У меня есть программа на основе 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
import flask
до или после monkey_patch? Вам нужноthread=True
? - person temoto   schedule 23.01.2015import flask
после исправления обезьян,thread=True
по умолчанию, поэтому я полагаю, что мой код должен с ним работать, но я не настаиваю :) - person Divius   schedule 24.01.2015