問題タブ [django-cache]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
674 参照

django - 'str'オブジェクトと'tuple'オブジェクトを連結できません-Django-johnnycache

djangoのWebサイトでjohnnyキャッシュをインストールしようとしています。

だから私はこのようにすべてのジョニーキャッシュ関連の設定を設定しました:

これまでのところ、プロジェクト全体はまだ本番モードで適切に実行されています。'johnny.middleware.LocalStoreClearMiddleware'しかし、ミドルウェアをセットアップした直後に 'johnny.middleware.QueryCacheMiddleware'、次の例外が発生します。

注意:ドキュメントに役に立たないと記載されているため、ジョニーキャッシュはINSTALLED_APPSに設定されていません

編集

さて、キャッシュヒットがあった場合にのみ例外がスローされることを発見しました。memcachedに保存されている値の有効期限が切れるのを待ってから、ページの読み込み時に例外がスローされません...

問題にさらに影を加えるために、ローカルホストでjohnnyをアクティブにしてプロジェクト全体を実行すると、すべてがうまくいきます。しかし、prod環境(Apache / 2.2.15(CentOS))で実行すると、例外がスローされます...そして両方の環境のdjangoバージョンはまったく同じです:1.3.1

注意:okmで指定されたミドルウェアの注文を設定しました

ありがとうございました

0 投票する
2 に答える
876 参照

django - Django - 複数プロセス用の Johnny Cache

Apache でホストされているアプリケーションの 1 つを使用して、johnny キャッシュを構成しました。デフォルトポートの同じマシンで実行されるバックエンドとしてmemcachedで構成されています。

複数の Web クライアントが Apache を通過する場合、キャッシュは正常に機能します。それらはすべてキャッシュから読み取られ、更新によりキャッシュが無効になります。ただし、python プログラム/スクリプトが django (johnny 構成を持つ同じ settings.py) を使用して DB から読み取る場合、キャッシュから読み取られないため、そのプログラムによって行われた更新はキャッシュに影響しません。これにより、キャッシュから古いデータを読み取る Web クライアントが残ります。

これに関連するジョニーキャッシュのドキュメントには何も見つかりませんでした。この状況について何か考えはありますか?

johnny cache 0.3.3、django 1.2.5、python 2.7 を使用しています。

編集: コメントの質問の1つに答えるために、スクリプトのDBからこのように読み取りました-

update sqlステートメントを発行してテーブルを直接更新し、キャッシュから読み取っているため、更新された値がWebクライアントに反映されていないため、キャッシュから読み取られないことがわかっています。MyModelClass.objects.get(id=1) を使用してオブジェクトを再フェッチすると、スクリプトは更新された値を表示します。

ありがとう、

0 投票する
1 に答える
581 参照

django - django REST ビューを事前にキャッシュする

django で実装された REST-ful サービスがあり、アクセスされるリソースごとに、アクセスされる可能性のある関連データをキャッシュしたいと考えています。

たとえば、リソースhttp://www.example.com/publication/1280は xml 応答を返します。

http://www.example.com/user/1次に、リソースとに関連付けられたデータを事前にキャッシュしたいと思いhttp://www.example.com/author/564ます。

Web サービスと同様に、与えられた応答は一種のデータ構造であるため、クエリセットよりもこの応答全体をキャッシュする方がよいと思います。クエリセットをキャッシュすると、リソースにアクセスするたびにテンプレートのレンダリングに時間がかかります。

それは良いアプローチですか?何か不足していますか?

このアプローチが正しい場合、django が提供するミドルウェアを使用してビューを事前にキャッシュするにはどうすればよいですか

'django.middleware.cache.UpdateCacheMiddleware'

'django.middleware.cache.FetchFromCacheMiddleware'?

ありがとうございました

0 投票する
2 に答える
461 参照

django - Django Johnny キャッシュ - MAN_IN_BLACKLIST を使用して除外する代わりにテーブルを含めますか?

Johnny cacheMAN_IN_BLACKLISTJOHNNY_TABLE_BLACKLIST. 逆を指定する方法はありますか?つまり、キャッシュする必要があるテーブルのみを指定しますか? アプリケーションに200を超えるテーブルがあり、いくつかをキャッシュしたいので、テーブルを非常に大きくしたくないという単純な理由でこれを行いたいと思いますMAN_IN_BLACKLIST

ありがとう、

0 投票する
3 に答える
10311 参照

django - Djangoでキャッシュされたテンプレートフラグメントを削除するにはどうすればよいですか?

以前は、Django テンプレートに次のようにキャッシュされた HTML のチャンクを設定していました。

今、このキャッシュされたコンテンツを更新したので、更新したいと思います。時間を無駄に変更しようとしました:

この場合、ページにはキャッシュされた古い HTML が引き続き表示されます。

また、キャッシングに関連するテンプレート タグを削除して再挿入してみました。ただし、この場合、キャッシュ テンプレート タグを再挿入すると、コンテンツは元のキャッシュされたコンテンツに戻ります。

私に何ができる?キャッシュをリロードするのに約 2 時間待ちたくありません。

0 投票する
1 に答える
381 参照

python - DjangoJohnny-キャッシュTypeError

私はこれを理解することができず、グーグルで調べた後、解決策を見つけることができませんでした。Djangoアプリにキャッシュを実装しています。

私が取った手順は次のとおりです。

  1. brew install libmemcache、これはmemcacheもインストールしました

  2. pip install pylibmc

  3. pip install -e hg + https://jmoiron@bitbucket.org/jmoiron/johnny-cache、これはエラーなしでインストールされました。

  4. これを私のsettings.pyに追加しました

    /li>

これで、参照するたびに、コンソールでmemcacheに保存されているものを確認できますが、memcachedgetが起動するとすぐにCaught TypeError while rendering: cannot concatenate 'str' and 'tuple' objectsスローされます。実行されているコマンドは関係ありません。エラーはにあり/env/pfenv/lib/python2.7/site-packages/django/db/backends/mysql/compiler.py in resolve_columns, line 12ます。

これについてもう1つSOの質問がありますが、選択された答えは、プロジェクトの別のフォークを使用することです。このフォークは更新されておらず、変更はほとんどすぐにマスターバケットにマージされます。pypiバージョン(私も試しました)は、コミット前のもので、壊れたと主張していますが、同じエラーが発生します。このプロジェクトは約2週間ごとに更新され、リリースされた他のバグ修正を利用したいと思います。

これは実装が非常に簡単なはずですが、ここで何が間違っているのでしょうか。

アップデート

これが私がやったことではない場合に備えて、スタックトレースも含むバグレポートを提出しました。

アップデート2

実際に戻ってキャッシュをフラッシュし、johnny-cacheをオフにして、pylibmcでバニラのdjangoキャッシュ設定だけを試しました。動作しません。すべてのページで同じエラーが発生します。同じことをpython-memcacheで試してみました。ここで何を探すべきかわからない。キャッシュを完全にオフにすると、サイトは正常に機能します。ちょっとキャッシングが必要です。

アップデート3

どうやら、この同じソースが同僚によってチェックアウトされ、同じ方法でインストールされたようです。違いが何であるか、またはトラブルシューティングするために他に何をすべきかわかりません。助言がありますか?

0 投票する
1 に答える
4070 参照

python - TypeErrorは関数オブジェクトをピクルスできません(Djangoキャッシング)

最初の例がスローTypeError (can't pickle function objects)され、2番目の例がスローされないのはなぜですか?QuerySet評価(Django 1.4)に関係していると思いますか?

例2

リスト内包表記でfooを設定すると、次のように機能します。

0 投票する
0 に答える
686 参照

python - Python / Django で設定されたキャッシュ タイムアウト以外の別の Cache-Control を定義する

次のようにビューをキャッシュしたいと思います。

これにより、ビューが 10 秒間自動的にキャッシュされ、Cache-Control/Expire ヘッダーも自動的に設定されます。ビューを 10 秒間だけキャッシュしたいのですが、最大経過時間は 3600 秒です。

たとえば、このように試してみました:

or this way:

But when specifying one of those within my Django-View it caches the view for 3600 seconds and not 10 seconds. Also tried decorators like 'cache_control' but nothing helps.

Is there a solution for this problem? I'm using Django 1.4.1.

Don't know if it is relavent, my activated middleware classes are

  • django.middleware.common.CommonMiddleware
  • django.contrib.sessions.middleware.SessionMiddleware
  • django.middleware.csrf.CsrfViewMiddleware
  • django.contrib.auth.middleware.AuthenticationMiddleware
  • django.contrib.messages.middleware.MessageMiddleware
  • django.middleware.http.ConditionalGetMiddleware

I've activated the ConditionalGetMiddleware to make sure a 304 will be sent depending on the last-modified header.

Thanks a lot!

Holger

0 投票する
1 に答える
1646 参照

django - クエリセットのキャッシュと疑いのフィルタリング

大量のレコードをフィルタリングする必要があるアプリに取り組んでいます。私は QuerySets のキャッシュと関連するものについて読んでいて、いくつかの良い資料を見つけました。例えば:

django でのクエリ結果のキャッシュ https://docs.djangoproject.com/en/dev/topics/db/queries/#caching-and-querysets

また、QuerySetの動作などについても何か https://docs.djangoproject.com/en/dev/topics/db/optimization/#understand-queryset-evaluation https://docs.djangoproject.com/en/dev/ref/models /querysets/#django.db.models.query.QuerySet.iterator

まだ不明な点もありますが。

私のアプリでは、次のようになっています: [ここには書かれていないバリデーションなどがあります]

n 個の user_made_filters が存在する可能性があります。それらのいくつかについては、|= の代わりに &= を実行する必要があります。

質問:- 1]

この後、後で使用するためにこの qs をキャッシュに入れたいと思います。データベースにアクセスせずに、他のすべてのフィルターを適用したい。何かのようなもの

しかし、 qs = qs.filter(q_object) を実行するとどうなりますか? キャッシュが変更されますか? 私はそれをしたくありません。更新するまでqsを一定のままにしておきたいです。この場合どうすればいいですか?

2] 前に言ったように、OR または AND された Q オブジェクトを生成し、 qs = qs.filter(q_object) を実行し続けます。 これを行うのは、似たようなタイプのフィルターを一度に見つけて適用し、別のタイプのフィルターを取得して続行するためです。また、いくつかのフィルターに優先順位を付ける必要があります。それらが最初に適用され、次に残りが適用されます。私の考えでは、私のqsはタイプ(a)であるため、これを尋ねます。

qs が最終的に評価されるとき、django は (a) に従って評価されますか? または、すべてのフィルターを組み合わせて (b) のように評価しますか?

よろしく、

ps- 2 ~ 3 時間は返信できません。

0 投票する
1 に答える
267 参照

django - 静的リソースにアクセスできません

Mezzanine、django-compressor、amazon-s3を使用しています。django-compressorを使用してcssファイルを圧縮します。WebサイトをHerokuにデプロイし、静的リソースを正常に保存しました。ただし、一定期間が経過すると、すべてのcssが失われます。以下は、amazon-s3からの通知です。

そして、これは設定の構成です:

この問題を解決するのを手伝ってください。根本的な原因がわかりません。どうもありがとう。