【问题标题】:Asynchronous data fetching and cache handling异步数据获取和缓存处理
【发布时间】:2011-09-13 04:39:08
【问题描述】:

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

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

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

【问题讨论】:

    标签: django celery django-celery django-cache


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您的回答。我去搜索如何从 Celery 更新缓存结果,发现它有点麻烦。几分钟前,我发现了这个 syfou.bitbucket.org/django-groupcache,我在这里看到了 stackoverflow.com/questions/2268417/…,它似乎可以解决问题。我现在试过了,它可以工作。我想我会对整个事情进行一些测试以强调它,然后将它与 Celery 任务集成。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多