Eventlet spawn_n ничего не делает после исправления обезьяны с потоком = True

У меня есть программа на основе 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


person Divius    schedule 22.01.2015    source источник
comment
У вас есть import flask до или после monkey_patch? Вам нужно thread=True?   -  person temoto    schedule 23.01.2015
comment
@temoto import flask после исправления обезьян, thread=True по умолчанию, поэтому я полагаю, что мой код должен с ним работать, но я не настаиваю :)   -  person Divius    schedule 24.01.2015
comment
вы правы, это должно работать, в обоих случаях на самом деле.   -  person temoto    schedule 24.01.2015