是否有一种方法来计算这个数据量,仍然服务于一个响应式网站?



目前我正在开发一个django + react网站,这将(我希望)服务于相当数量的用户。项目演示已经基本完成,我开始考虑将这个东西投入生产所需的规模

这个网站基本上做了三件事:

  1. 从外部api(即Twitter)获取50,000个唯一关键字(关键字不更改)的数据。这个过程每30分钟发生一次

  2. 对所有数据运行计算,并将计算结果保存到数据库中。假设算法已尽可能优化

  3. 当用户访问网站时,它应该提供一个漂亮的图形/图表,显示每个关键字的所有计算数据

问题是,这是一个太紧张的任务,由同一个应用程序来完成,为网站提供服务,用户将等待几十年才能看到他们的数据。我目前的计划是有一个单独的API使服务与数据的网站,该网站可以然后存储在它的数据库。这个单独的API可以处理数据而不用担心影响用户,并且它应该能够在30分钟内完成当前的计算,及时处理下一轮数据。

谁能帮助我了解我如何才能更好地装备我的项目来处理规模?我想听听你的建议。

作为一名计算机科学四年级的学生,我认为是时候把一个真正的项目推向世界了,我对它和我迄今为止取得的进展感到非常兴奋。我主要担心的是,如果我不找出某种管道来实现这个过程,最终用户将受到负面影响。

重申我的想法:

  1. Django + React -这是面向前端的网站
  2. 外部API -从互联网上抓取数据并处理它,并等待来自网站的GET请求

有更好的方法吗?或者另一方面,我是否严重高估了这是多么繁重的计算。

编辑:包括当前研究

在Django webapp中处理计算密集型任务

django中业务逻辑和数据访问的分离

您想要的是让计算任务在"后台"由另一个进程执行。最直接和流行的解决方案是使用芹菜,见这里。

执行后台任务的Celery worker(s)可以和web应用程序在同一台机器上运行,或者(当规模成为一个问题时),你可以改变配置使它在完全不同的机器上运行。

相关内容