0

私はこれを理解することができず、グーグルで調べた後、解決策を見つけることができませんでした。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に追加しました

    CACHES = {
        'default': {
            'BACKEND': 'johnny.backends.memcached.PyLibMCCache',
            'LOCATION': ['127.0.0.1:11211'],
            'JOHNNY_CACHE': True,
        }
    }
    JOHNNY_MIDDLEWARE_KEY_PREFIX = 'product'
    
    MIDDLEWARE_CLASSES = (
        'johnny.middleware.LocalStoreClearMiddleware',
        'johnny.middleware.QueryCacheMiddleware',
        ...
    }
    

これで、参照するたびに、コンソールで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

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

4

1 に答える 1

0

これは私のマシンで実際に修正されることはありませんでしたが、問題が何であるかはまだわかりません。しかし、デプロイ サーバーと同僚の開発環境ではそのまま動作します。セットアップに何か問題があったので、答えを残しておきます。それに関連する他のランダムな問題があったため、データベースで想定しています。

于 2012-06-15T16:50:51.383 に答える