I use memcached on a low traffic website with Django. Sometimes I get
this error message in my mail (full error below):

AttributeError: 'NoneType' object has no attribute 'recv'

I use memcache to cache some Twitter messages. I fetch them using this
in a context-preprocessor:
def latest_tweet( request ):
        tweet = cache.get( 'tweet_mysite_nl' )

        if tweet:
                return {"tweet": tweet}
        else:
                tweet = {}
                return {"tweet": tweet}

I tried to trigger this error hitting refresh all the time, but with
my pc everything works fine.

I update the cache twice an hour with another view, using cron
(because I don't want to rely on an external site for performance):

def update_tweet(request):
        import time
        from django.conf import settings
        from django.core.cache import cache
        import twitter
        tweet = twitter.Api().GetUserTimeline( settings.TWITTER_USER,
count=5 )
        for s in tweet:
                s.date =
datetime.datetime(*(time.strptime( s.created_at, "%a %$
        cache.set( 'tweet_mysite_nl', tweet,
settings.TWITTER_TIMEOUT )
        return HttpResponseRedirect('mysite')


Here is the full error message:

Traceback (most recent call last):

  File "/usr/lib/python2.4/site-packages/django/core/handlers/
base.py", line 100, in get_response
    response = callback(request, *callback_args, **callback_kwargs)

  File "/usr/lib/python2.4/site-packages/django/views/generic/
simple.py", line 16, in direct_to_template
    c = RequestContext(request, dictionary)

  File "/usr/lib/python2.4/site-packages/django/template/context.py",
line 149, in __init__
    self.update(processor(request))

  File "/home/wieskamp/django/wieskamp/verkoop/context_processors.py",
line 8, in latest_tweet
    tweet = cache.get( 'tweet_mysite_nl' )

  File "/usr/lib/python2.4/site-packages/django/core/cache/backends/
memcached.py", line 48, in get
    val = self._cache.get(smart_str(key))

  File "/usr/lib/python2.4/site-packages/memcache.py", line 337, in
get
    rkey, flags, rlen, = self._expectvalue(server)

  File "/usr/lib/python2.4/site-packages/memcache.py", line 411, in
_expectvalue
    line = server.readline()

  File "/usr/lib/python2.4/site-packages/memcache.py", line 511, in
readline
    recv = self.socket.recv

AttributeError: 'NoneType' object has no attribute 'recv'

Reply via email to