我计划部署一个动态站点,它需要定期在后台完成某些任务,比如说每一两个小时。我需要输出的数据严格取决于这些查询的结果。
现在的问题是,这些任务需要一定的时间,例如8-10分钟:因此,如果用户请求一个页面,因此某个视图被调用,而该任务仍在进行中,则一切都会出错。
所以,这里有一个问题:我需要实现什么来处理这个问题?我一直在搜索,并找到了关于芹菜的信息,但我不明白如何使用它来解决上面的问题,并可能实现一个缓存系统,在任务尚未完成时进行干预。
发布于 2011-09-13 14:49:20
一种解决方案可以是:视图将提供缓存的结果,当任务完成时,这个视图将用新的结果更新缓存的结果。您也可以在这里以这种方式使用celery,当命中缓存视图并且必须重新计算它时,会分离一个celery任务(视图将返回缓存值)。
这里有一个关于一次性芹菜任务的有趣示例:http://ask.github.com/celery/cookbook/tasks.html
https://stackoverflow.com/questions/7396877
复制相似问题