我正在设计一个基于django的Web应用程序,它能够通过需要从Kafka主题中使用的Web套接字数据来提供服务。
此时,我想出了一个分为两个组件的解决方案:一个从kafka消耗的组件,对检索到的数据执行一些基本操作,并使用http请求将结果发送到django应用程序。 收到请求后,将通过特定的django频道写入消息。
是否有更好的架构来解决这种情况?我是否应该将所有Kafka部分包含在芹菜异步任务中的“while True”循环中?当django启动时,我应该生成一个新进程吗?如果是这样,我还可以使用django信号通过网络套接字发送数据吗?
谢谢, Fb
答案 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
另一个好主意是向此单独的应用程序添加一些多线程