old_contents: from celery.task import task
  from django.utils import translation
  
  
  @task(ignore_result=True)
  def _refresh_by_pk(cls, pk, language=None):
      prev_language = translation.get_language()
      language and translation.activate(language)
      try:
          cls._default_manager.get(pk=pk).refresh()
      finally:
          translation.activate(prev_language)
  
  def refresh_instance(instance):
      _refresh_by_pk.delay(type(instance), instance.pk, translation.get_language())
  
  
  @task(ignore_result=True)
  def book_content_updated(book):
      book.refresh_dc_cache()
  
new_contents: # -*- coding: utf-8 -*-
  from celery.task import task
  from django.utils import translation
  
  
  @task(ignore_result=True)
  def _refresh_by_pk(cls, pk, language=None):
      prev_language = translation.get_language()
      if language:
          translation.activate(language)
      try:
          cls._default_manager.get(pk=pk).refresh()
      except cls.DoesNotExist:
          pass
      finally:
          translation.activate(prev_language)
  
  
  def refresh_instance(instance):
      _refresh_by_pk.delay(type(instance), instance.pk, translation.get_language())
  
  
  @task(ignore_result=True)
  def book_content_updated(book):
      book.refresh_dc_cache()
  
subject: fix refresh task when the object is deleted