如何在部署时清除memcachier?

时间:2013-04-11 22:24:54

标签: django heroku

有没有办法在每次部署后自动清除缓存?

或者是否有一个命令可以运行以清除它,类似于运行进程的命令?

e.g。 heroku运行python manage.py syncdb

1 个答案:

答案 0 :(得分:3)

您可以使用django.core.cache.clear

清除整个缓存(无论底层实现如何)
  

最后,如果要删除缓存中的所有密钥,请使用cache.clear()。小心这个; clear()将删除缓存中的所有内容,而不仅仅是应用程序设置的密钥。

所以一种方法是write a management command manually进行此调用。在您的某个应用myapp/management/commands/clear_cache.py中创建一个新模块:

from django.core.management.base import BaseCommand
from django.core import cache

class Command(BaseCommand):
    help = 'Clears the underlying cache'

    def handle(self, *args, **options):
        cache.clear()

现在可以致电python manage.py clear_cache。您应该查看Fabric来管理部署,因为它允许您编写自动脚本来执行所有必需的步骤(以及调用此清除缓存脚本)