1

我正计划部署一个动态站点,该站点需要在后台定期完成某些任务,比如说每隔一两个小时。我需要输出的数据完全取决于这些查询的结果。

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

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

4

1 回答 1

2

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

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

于 2011-09-13T06:49:20.423 回答