异步数据提取和缓存处理

时间:2011-09-13 04:39:08

标签: django celery django-celery django-cache

我打算部署一个动态网站,需要在后台定期完成某些任务,比方说每隔一两个小时。我需要输出的数据严格取决于这些查询的结果。

现在,问题在于这些任务需要一定的时间,例如8-10分钟:所以如果一个用户要求一个页面,因此某个视图被调用,并且该任务仍在进行中,一切都会变坏。

所以,这里有一个问题:我需要实现什么来处理这个问题? 我一直在搜索,我发现了芹菜,但我还不明白如何用它来解决上述问题,并且可能实现一个缓存系统,当任务尚未完成时进行干预。

1 个答案:

答案 0 :(得分:2)

解决方案可以是以下内容: 视图将提供缓存结果,当任务完成时,此视图将使用新结果更新缓存结果。 您也可以在这里以这种方式使用芹菜,当一个缓存的视图被击中并且必须重新计算时,芹菜任务将被分离(视图将返回缓存的值)。

这里有一个关于一次性芹菜任务的有趣例子: http://ask.github.com/celery/cookbook/tasks.html