我在尝试每小时为特定的 Django View 重置缓存时遇到了一些问题。
现在,我正在使用 cache_page 装饰器通过 Memcached 缓存我的 View 。但是缓存会在一段时间后过期,一些用户的请求会被取消缓存。
@cache_page(3600)
def my_view(请求):
...
我如何编写自己的 django manage.py 命令来从 cron 中每小时刷新一次此 View 的缓存?
换句话说,我在此处的答案中提到的 refresh_cache.py 文件中放入了什么: Django caching - can it be done pre-emptively?
谢谢!
最佳答案
在您的应用中,您可以创建一个名为 management
的文件夹,其中包含另一个文件夹 commands
和一个空的 __init__.py
文件。在 commands
中,您创建了另一个 __init__.py
和一个用于编写自定义命令的文件。我们称它为 refresh.py
:
# refresh.py
from django.core.management.base import BaseCommand, CommandError
from main.models import * # You may want to import your models in order to use
# them in your cron job.
class Command(BaseCommand):
help = 'Posts popular threads'
def handle(self, *args, **options):
# Code to refresh cache
现在您可以将此文件添加到您的 cron 作业中。你可以看看这个tutorial但基本上您使用 crontab -e 来编辑您的 cron 作业,并使用 crontab -l 查看哪些 cron 作业正在运行。
您可以在 Django documentation 中找到所有这些以及更多信息.
关于python - Cronjob 定期刷新 django View 的缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13018266/