大家。我正在开发基于 Django 的门户和管理面板的在线游戏,而游戏和实时服务(提要、聊天)基于 Tornado 非阻塞 I\O。
对于实时传输,我们使用了 SockJS-tornado 和 SockJS 客户端。
我有一个关于提要模块的问题。现在我们有以下架构:
- 提要在 django 端生成
- Django 使用 celery.execute.send_task 方法发布带有参数的任务
- 来自龙卷风侧的 celery worker 消耗它并将每个订阅者的提要存储在 mongodb
- 龙卷风还应该实时通知每个在线订阅者新鲜的饲料(这里的问题是芹菜工人有不同的(隔离的)环境)
但是,上述第四点存在问题。由于芹菜和龙卷风具有孤立的环境,我无法访问饲料处理程序。有没有办法通过利用 memcache 从 celery 环境中的另一个环境访问实例?或者可能是芹菜以某种方式可以与应用程序共享环境?!
先感谢您!