从django应用程序中获取kafka消息

时间:2017-10-07 18:06:42

标签: django apache-kafka celery

我正在设计一个基于django的Web应用程序,它能够通过需要从Kafka主题中使用的Web套接字数据来提供服务。

此时,我想出了一个分为两个组件的解决方案:一个从kafka消耗的组件,对检索到的数据执行一些基本操作,并使用http请求将结果发送到django应用程序。 收到请求后,将通过特定的django频道写入消息。

是否有更好的架构来解决这种情况?我是否应该将所有Kafka部分包含在芹菜异步任务中的“while True”循环中?当django启动时,我应该生成一个新进程吗?如果是这样,我还可以使用django信号通过网络套接字发送数据吗?

谢谢, Fb

1 个答案:

答案 0 :(得分:0)

是的,您可以使用Django代码/存储库并构建单独的应用程序/程序以通过Django ORM处理kafka队列和数据库

只需在此程序代码的开头添加即可,例如

sys.path.append(os.getcwd())
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "<your_app>.settings")
django.setup()

然后您可以在此程序中使用模型,例如

from <your_app>.models.timeslots import TimeSlotReserve

另一个好主意是向此单独的应用程序添加一些多线程