django で
コンテンツの
コンテンツの
実施した
cache の 削除タスク
django shell 、clear_cache
コマンドで
clear_cache
コマンド
django-extentions
のclear_cache
コマンドは
python2.7 manage.py clear_cache
DEFAULT_CACHE_ALIAS
でcache の
python2.7 manage.py clear_cache --cache alias_name
django shell で 削除する
Djangoの
$ python2.7 manage.py shell >> from django.core.cache import cache >> cache.clear()
DEFAULT_CACHE_ALIAS
に削除する
djang-extentions
のclear_cache
をcache の 生成タスク
cache の
ユーザ が
以下の
A couple of simple options to parse sitemap.xml to warm the cache or for other actions such as generating memory_profiler checks.
sitemap_cache_warmer.sh
sitemap に
'
を'
を'
へ
あとはもとの
#!/bin/bash DOMAIN='www.monotalk.xyz' # wget and curl # sitemap base wget -q https://$DOMAIN/sitemap.xml --no-cache -O - | egrep -o "https://$DOMAIN[^<]+" | sed "s/'/'/g" | while read line; do echo "-----------" echo "Cache Warmer access START url>>>" "$line" time curl -A 'Cache Warmer' -s -L "$line" > /dev/null 2>&1 echo "Cache Warmer access END" done
domain_root_cache_warmer.sh
ドメイン TOP ぺ
#!/bin/bash DOMAIN='www.monotalk.xyz' # toppageから、category page、archivepage のcache を作成 wget -q https://$DOMAIN --no-cache -O - | egrep -o "/blog/category/[^\"]+|/blog/archive/[^\"]+" | sed "s/'/'/g" | while read line; do url=https://"$DOMAIN$line" echo "----------" echo "Cache Warmer access START url>>>" $url time curl -A 'Cache Warmer' -s -L "$url" > /dev/null 2>&1 echo "Cache Warmer access END" done
crontab の 設定
clear_cache
の
clear_cache
自体は
10 0-23/6 * * * $PYTHON_PATH $DJANGO_PROJECT_ROOT/manage.py clear_cache &>> $LOG_DIR/clear_cache.log # django-cronjobs for blog 15 0-23/6 * * * /bin/sh $SCRIPT_HOME/domain_root_cache_warmer.sh &>> $LOG_DIR/domain_root_cache_warmer.log && /bin/sh $SCRIPT_HOME/sitemap_cache_warmer.sh &>> $LOG_DIR/sitemap_cache_warmer.log
補足
各変数に
ついて
$PYTHON_PATH
はpython の パス。
$DJANGO_PROJECT_ROOT
は、django の プロジェクトルートディレクトリ。
$LOG_DIR
はログの 出力先ディレクトリ。
$SCRIPT_HOME
はスクリプトの 配置先ディレクトリに なります。
環境に合わせて 読み替えてください。 ログの
リダイレクト方法に ついて
作成時は、&>>
ではなくて、>>
でリダイレクトしていて、 エラーメールが 飛んできていました。
スクリプト内で、time
コマンドを使用していますが、 time
コマンドの出力は、 標準エラーに 出力されるようです。
以下、記事が 参考に なりました。
timeコマンドの結果って、 標準エラー出力ですよね? - Objrepos Blog
以上です。
コメント