2012-02-29 8 views
2

私の開発マシンでJohnny Cacheをセットアップしようとしていますが、いくつかの問題が発生しています。このように、ファイルベースのキャッシュを使用する:Johnny Cacheの設定

CACHES = { 
    'default' : dict(
     BACKEND= 'johnny.backends.filebased.FileBasedCache', 
     LOCATION= '/tmp', 
    ) 
} 

MIDDLEWARE_CLASSES = (
    'johnny.middleware.LocalStoreClearMiddleware', 
    'johnny.middleware.QueryCacheMiddleware', 
) 

は私が取得:接続がちょうどそこにハングアップ

CACHES = { 
    'default' : { 
     'BACKEND': 'johnny.backends.locmem.LocMemCache', 
    } 
} 

Traceback (most recent call last): 
    File "/Users/kitsunde/.virtualenvs/media-pop/lib/python2.7/site-packages/django/core/servers/basehttp.py", line 283, in run 
    self.result = application(self.environ, self.start_response) 
    File "/Users/kitsunde/.virtualenvs/media-pop/lib/python2.7/site-packages/django/contrib/staticfiles/handlers.py", line 68, in __call__ 
    return self.application(environ, start_response) 
    File "/Users/kitsunde/.virtualenvs/media-pop/lib/python2.7/site-packages/django/core/handlers/wsgi.py", line 273, in __call__ 
    response = self.get_response(request) 
    File "/Users/kitsunde/.virtualenvs/media-pop/lib/python2.7/site-packages/django/core/handlers/base.py", line 168, in get_response 
    receivers = signals.got_request_exception.send(sender=self.__class__, request=request) 
    File "/Users/kitsunde/.virtualenvs/media-pop/lib/python2.7/site-packages/django/dispatch/dispatcher.py", line 172, in send 
    response = receiver(signal=self, sender=sender, **named) 
    File "/Users/kitsunde/.virtualenvs/media-pop/lib/python2.7/site-packages/django/db/transaction.py", line 222, in inner 
    self.__exit__(None, None, None) 
    File "/Users/kitsunde/.virtualenvs/media-pop/lib/python2.7/site-packages/django/db/transaction.py", line 207, in __exit__ 
    self.exiting(exc_value, self.using) 
    File "/Users/kitsunde/.virtualenvs/media-pop/lib/python2.7/site-packages/django/db/transaction.py", line 281, in exiting 
    commit(using=using) 
    File "/Users/kitsunde/.virtualenvs/media-pop/lib/python2.7/site-packages/johnny/transaction.py", line 147, in newfun 
    self._flush(commit=commit, using=using) 
    File "/Users/kitsunde/.virtualenvs/media-pop/lib/python2.7/site-packages/johnny/transaction.py", line 135, in _flush 
    self.cache_backend.set(key, value, self.timeout) 
    File "/Users/kitsunde/.virtualenvs/media-pop/lib/python2.7/site-packages/johnny/backends/filebased.py", line 23, in set 
    return super(CacheClass, self).set(key, value, timeout=timeout, **kwargs) 
NameError: global name 'kwargs' is not defined 

私は1つのベースのメモリを使用しようとします。私はキャッシュがゼロになっています。どのように私はこれを設定することができますか?

+0

:あなたのようなものを持つべきではありません。私は同じバージョンを持っていることに注意してください。Memcachedバックエンドが機能するので、むしろそれを使用するかもしれません。 – jpic

答えて

1

JohnnyCacheファイルベースのバックエンドにバグが見つかりました。私は同じバグを持っていますが、私はFileBasedバックエンドを動作させることができました。このコードをsettings.pyに入れてバグを修正しました:

import sys 
from johnny.backends import filebased 
def fixed_set(self, key, value, timeout=None): 
    if timeout is 0: 
     timeout = sys.maxint 
    return super(filebased.CacheClass, self).set(key, value, timeout=timeout) 
filebased.CacheClass.set = fixed_set 

ただし、バグを報告する必要があります。

注:私はmemcachedバックエンドを使用することをお勧めします。

ミドルウェアが2つしかない理由はわかりません。あなたはJohnnyCacheファイルベースのバックエンドでバグを発見した

MIDDLEWARE_CLASSES = [ 
    'johnny.middleware.LocalStoreClearMiddleware', 
    'johnny.middleware.QueryCacheMiddleware', 
    'django.middleware.common.CommonMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.transaction.TransactionMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
] 
関連する問題