为什么?因为我有一个django项目,它从用户那里获取数据,并使用许多web服务,将结果显示给用户,以便比较信息,就像聚合器网站通过航空公司的web服务搜索机票并实时显示结果以便比较机票。在
现在我在一个“等待页面”中这样做,当jquery每隔5秒询问是否所有结果都准备好时,celery会访问webservices,因此当准备就绪时重定向到results页面。在
我想做的是不要使用这个“等待页面”,我想在结果提交时实时提供结果页面,并且我想让它遵循最佳实践,我的意思是我不想jquery每X秒获取结果来填充表。在
我想一些基于协同程序的python库可以帮助我解决这个问题,但是我想先了解一下您的经验,并看到一些示例,我很困惑,因为这个项目的这一部分是设计为异步运行的,我的意思是,使用带有芹菜和弦的web服务,但不是为实时发送信息而设计的应用服务器。在
实际架构: python2.7、django 1.3、postgresql9、cellery 3+redis、uwsgi、nginx都托管在aws上。在
提前谢谢你。在
我不知道uWSGI+gevent,但是你可以在uWSGI中使用tornado。Tornado基本上在中为您提供内置的WSGI支持龙卷风.wsgi.wsgi容器模块使其与其他WSGI服务器(如uWSGI和古尼康。但是这取决于您的使用情况,我认为在同步服务器(如uWSGI)中使用异步框架不是一个好主意。龙卷风有这个警告。在
^{bq}$uWSGI+gevent是一个可靠的组合,但是目前还没有办法用tornado api运行uWSGI(由于uWSGI在1.9中放弃了对基于回调方法的支持,我认为我们永远也看不到这种组合会起作用)。在
在开始使用gevent之前,您需要解决的问题是确保您的所有部分都是gevent友好的(redis和celeri都可以,您需要检查数据库适配器)。之后,只需将gevent添加到uWSGI实例中,其中是每个worker并发请求的最大数量。在
相关问题 更多 >
编程相关推荐