database - 使用数据库在 Web 服务的后端和前端之间存储临时结果
问题描述
我有一个多线程后端应用程序。输入 x 并输出 y,这构成了一个“工作”。一项作业最多可能需要几秒钟才能完成。应用程序通过 HTTP 请求获得输入,一旦作业完成,它将返回对 HTTP 的响应(因此响应时间可能是几秒钟)。响应数据的大小可以从几个字节到大约半 MB 不等。
问题是,当向应用程序发送大量请求时,所有线程都在等待作业完成,导致进一步请求的响应时间很长 - 而我希望应用程序专注于完成作业.
我在想也许更好的方法是:根据请求将作业添加到队列中,并在请求 HTTP 消息中返回作业已收到的消息。应用程序将处理结果,然后将它们上传到数据库。然后可以通过网络服务器从数据库下载结果并发送到客户端。但是,我对这种方法有一些疑问。
响应数据库将经常被写入和读取。是否有一类数据库是为以这种方式频繁访问而设计的——主要与性能有关?此外,这些结果将是临时的,一旦被读取就需要从数据库中删除。(我经常想到来自更传统的 MySQL 的数据库,这些数据库需要频繁查询才能实现我所描述的内容)。
远离 HTTP 响应意味着需要以某种方式通知客户端结果已经到达。从 Web 开发人员的角度来看,向客户端的网页发送响应的好方法是什么?
这个数据库管道/架构是否有一个名称,以便我可以对其进行更多研究?我知道这个过程可能被粗略地描述为一个微服务架构,其中 API 用于在后端应用程序之间进行通信。
对于前端和后端之间的此数据库通信的任何其他信息/见解将不胜感激。
解决方案
推荐阅读
- javascript - Javascript,字体颜色不会第二次改变
- python - 从一组至少 3 个开始的列表中查找连续数字和相同数字的最佳组合
- javascript - 表单输入未显示在 Request.POST
- node.js - 从 Ubuntu 20.04 上的节点应用程序本地构建 docker 映像时出现错误 137
- powershell - 从组中删除禁用帐户的 Powershell 脚本运行缓慢。如何让它更快?
- asp.net-mvc - 空字符串的jQuery验证器
- machine-learning - 网页抓取-在线课程抓取-代码错误
- c++ - 函数调用中的参数太少?
- python - Python:制作图像合成,调整大小,然后使用新调整大小的图像进行最终合成
- string - 最长公共子序列的范围查询