3

所以我目前正在为一个 Django 项目添加一个推荐引擎,并且需要为我的一个视图函数做一些繁重的处理(在一个外部模块中)。这显着减慢了页面加载时间,因为我必须加载一些数据,对其进行转换,根据请求发送的参数执行我的计算,然后将建议返回给视图。每次加载视图时都必须这样做。

我想知道是否有某种方法可以让推荐模块加载并转换内存中的数据,然后等待从视图发送参数,对这些参数运行计算,然后将其发送回视图。

任何帮助将不胜感激。

4

1 回答 1

3

Celery是一个非常擅长这类事情的任务队列。

它将允许您执行以下操作:

  1. 用户请求查看
  2. view 启动一个异步任务来完成繁重的工作,然后立即返回给用户
  3. 您可以从 javascript 轮询以查看您的任务是否已完成并在完成时加载结果

可能不是您正在寻找的流程,但 celery 绝对值得一试 Celery 也有一个很棒的django 包,非常易于使用

重读您的问题,我认为也可以围绕您的推荐引擎创建本地网络服务。启动时它可以将所有数据加载到内存中,然后你可以从你的 django 应用程序向它发出请求吗?

于 2013-01-30T16:34:21.857 回答