python - Cronjob 定期刷新 django View 的缓存

标签 python django cron memcached

我在尝试每小时为特定的 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/

相关文章:

ssh - 主机 key 验证失败 [rsync : connection unexpectedly closed]

用于电子邮件地址的 Python 正则表达式,需要清除点划线

python - 使用 Python API 创建产品时未收到来自 Shopify 的响应

python - celery任务的实时进度跟踪

django - 如何在 Django 中使用 opencv?

linux - Cron 作业无法在 Ubuntu 上运行

python - 在启动时运行 Python 脚本以记录 Linux 中的鼠标和键盘事件

python - 使用鼠标滚轮和箭头键滚动 `wx.ScrolledPanel`

python - 使用 Python 和 PLY 的递归下降解析器

python - 在pyspark中使用reduceByKey获取具有多个字段的值