使用一个服务器进程从 Django 应用程序推送通知

Posted

技术标签:

【中文标题】使用一个服务器进程从 Django 应用程序推送通知【英文标题】:Pushing notifications from a Django app with one server process 【发布时间】:2014-04-29 05:09:32 【问题描述】:

我有一个由 Gunicorn 提供的 Django 应用程序。 我想向它添加 WebSocket 通知,使用 PostgreSQL 作为消息队列,使用 gevent-socketiotornadio 作为 WebSocket 服务器。

我可以使用相同的 Gunicorn 进程来服务 WebSocket 吗?或者,更确切地说,我是否需要另一个运行 gevent 的 Socketioserver 或 Tornadio 的 SocketServer 的进程?

【问题讨论】:

【参考方案1】:

是的,例如,您可以使用gevent-socketio with Django 并且只为所有请求运行一个进程。默认情况下,socket-io 请求转到/socket.io/ - 您甚至可以对 socketio-requests 以及其他请求使用相同的 url,但将它们保留在子路径中是有意义的(例如,用于代理配置)。

但尽管如此,为正常的 HTTP 请求提供单独的进程可能是有意义的(例如,一些简单的负载平衡等......)。

【讨论】:

而且 Gunicorn 不需要特殊配置?

以上是关于使用一个服务器进程从 Django 应用程序推送通知的主要内容,如果未能解决你的问题,请参考以下文章

使用 django 和 GCM 推送通知

从服务器删除已发送的推送通知

android推送保活实验到结论

如何静音推送通知?

如何从 JobIntentService 中删除重复的意图

django 应用程序的 Heroku 推送得到“没有名为 psycopg2.extensions 的模块”