在工作中,我不允许将perl用于web服务。但是,允许使用Python。
我需要做的是提供一些非常慢的c++二进制文件的结果。每个exe运行时间长达20秒。在perl中,我只使用mojolicious的非阻塞事件循环(这里给出了一个example.of。http://blogs.perl.org/users/joel_berger/2014/01/writing-non-blocking-applications-with-mojolicious-part-3.html )
如何使用django和python来做到这一点呢?
发布于 2014-01-26 18:34:45
Tornado使用非阻塞IO,其概念与perl或node js事件循环、每个线程多任务等概念相同。
发布于 2014-01-26 18:33:37
使用Django可能不太可能,因为整个框架都需要专门为在事件循环中运行而构建。在事件驱动框架中,需要使用回调实现慢操作(例如I/O ),以便可以将实际的I/O卸载到事件循环本身,并且只有在操作完成时才调用回调;Django不是这样实现的。
看看Twisted --它是一个事件驱动的网络引擎,也有一些构建在它之上的web应用框架。
发布于 2014-01-26 18:57:35
看看A clean, lightweight alternative to Python's twisted吧。我会选择gevent作为web应用程序,因为它与uWSGI一起运行-- Python代码运行的最通用的web服务器。
https://stackoverflow.com/questions/21362267
复制相似问题