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

Fra*_*kBr 6 django celery apache-kafka

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

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

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

谢谢,Fb

Rya*_*der 3

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

只需在该程序代码的开头添加,例如

sys.path.append(os.getcwd())
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "<your_app>.settings")
django.setup()
Run Code Online (Sandbox Code Playgroud)

然后你可以在这个程序中使用你的模型,比如

from <your_app>.models.timeslots import TimeSlotReserve
Run Code Online (Sandbox Code Playgroud)

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