2

キャッシュレイヤーのmemcachedバックエンドを使用してDjango1.3インスタンスを実行しています。最近、アプリケーションのデータベースの一部をデバッグしようとしていますが、memcachedサーバーをオフラインにすると、次のエラーが発生します。

AttributeError at /joinerysoft/contacts/ajax/all/None/None/
'NoneType' object has no attribute 'sendall'
Request Method: GET
Request URL:    http://joinerysoft-directory.co.uk/joinerysoft/contacts/ajax/all/None/None/
Django Version: 1.3.1
Exception Type: AttributeError
Exception Value:    'NoneType' object has no attribute 'sendall'
Exception Location: /usr/lib/python2.7/dist-packages/memcache.py in send_cmd, line 1112
Python Executable:  /usr/bin/python
Python Version: 2.7.3

memcached + djangoの魅力的な部分は、memcacheが消えても、サイトが戻るまで機能し続けることだと思いました。私はDjangoのBuiltinCachingを使用しています。

4

1 に答える 1

1

まず第一に、これは Django からのエラーではなく、python-memcached ライブラリからのエラーです。次に、この動作は一貫していると思います。memcached を使用するように Django を構成した場合、Django がダウンすると、エラーがスローされます。サイトがキャッシュに大きく依存していると仮定すると、何かが発生した場合にできるだけ早く知りたいと考えており、クエリが多すぎるために数日後に DB 全体がダウンしていることを把握したくない場合もあります (例として)。

フォールバック キャッシュを定義するか、他の回避策を実行する方法があります。この類似の質問を確認してください: Django でキャッシュ エラーを無視する方法はありますか?

于 2012-09-04T09:23:13.767 に答える