对制作Django异步(RealTime)感到困惑

时间:2013-05-09 03:45:45

标签: django node.js real-time tornado

使Django项目成为异步(RealTime)的更好技术(使用带有django ORM或Node.js的Tornado),

Node.js非常难以编码。

我遵循了一个教程:在Tornado Web Server中使用Django。

[http://lincolnloop.com/blog/2009/sep/15/using-django-inside-tornado-web-server/][1]

解决方案:

我为django开发了一个名为 django-realtime 的软件包。对于我面临同样问题的其他开发者来说,这可能会有所帮助

https://pypi.python.org/pypi/django-realtime/1.1

2 个答案:

答案 0 :(得分:3)

Django IMO不应该用作异步应用程序,它不是为此而设计的。如果您想要使用Web套接字之类的实时应用程序,则需要将您的问题分开。

我正在构建一个实时应用程序,使用Django作为服务站点和任何RESTy API调用的MVC框架,Gevent SocketIO作为实时位的Web套接字服务器和Redis Pub / Sub(将切换为ZeroMQ) )作为应用程序的各个不同部分的消息传输,以与套接字服务器通信并发出事件。

看看https://github.com/abourget/gevent-socketio。它确实有一个Django集成组件但是它有点神奇,我会用它来构建一个单独的Web套接字服务器,让事情变得简单。

答案 1 :(得分:1)

Django和芹菜很好地合作。 你会在网上找到很多信息,但最好看的地方是

但是使用Celery并不是强制性的。由于Django可以操作任何Python模块(或附近),您可以简单地使用RabbitMQ(作为代理)并使用amqphttps://pypi.python.org/pypi/amqp),它是amqplib的分支({ {3}})。

基本上,你会发现有关Python + AMQP的任何操作都适用于Django。