Example #1
0
    def post(self):
        model_kind = self.request.get('model_kind')
        frequency = self.request.get('frequency')
        date = str_to_date(self.request.get('date_string'))
        store_key_name = self.request.get('store_key_name')

        logging.info('Cleanupworker model kind: %s frequency: \
    %s store: %s' % (model_kind, frequency, store_key_name))

        recursion_flag = False

        if model_kind == 'ProductRenderer':
            store_key = Key.from_path('Store', store_key_name)
            query = get_renderer_query_for_frequency(frequency, date,
                                                     store_key)
            keys = query.fetch(200, TEMPLATE_PRODUCT_COUNT)
        elif model_kind == 'ProductCounter':
            store_key = Key.from_path('Store', store_key_name)
            query = get_counter_query_for_frequency(frequency, date, store_key)
            keys = query.fetch(200)
        elif model_kind == 'UserCounter':
            query = USER_COUNTER_CLEANUP_TARGETS
            keys = query.fetch(200)
        else:
            logging.error('No type found for CleanupWorker :%s' % model_kind)

        if len(keys):
            recursion_flag = True
            pdb.delete(keys)

        if recursion_flag:
            logging.info('Enqueing cleanup for model %s' % model_kind)
            enqueue_cleanup(model_kind, frequency, str(date), store_key_name)
Example #2
0
 def post(self):
   model_kind = self.request.get('model_kind')
   frequency = self.request.get('frequency')
   date = str_to_date(self.request.get('date_string'))
   store_key_name = self.request.get('store_key_name')
   
   logging.info('Cleanupworker model kind: %s frequency: \
   %s store: %s' %(model_kind,frequency,store_key_name))
   
   recursion_flag = False
   
   if model_kind == 'ProductRenderer':
     store_key = Key.from_path('Store',store_key_name)
     query = get_renderer_query_for_frequency(frequency, date, store_key)
     keys = query.fetch(200, TEMPLATE_PRODUCT_COUNT)
   elif model_kind == 'ProductCounter':
     store_key = Key.from_path('Store',store_key_name)
     query = get_counter_query_for_frequency(frequency, date, store_key)
     keys = query.fetch(200)
   elif model_kind == 'UserCounter':
     query = USER_COUNTER_CLEANUP_TARGETS
     keys = query.fetch(200)
   else:
     logging.error('No type found for CleanupWorker :%s' %model_kind)
   
   if len(keys):
     recursion_flag = True
     pdb.delete(keys)
   
   if recursion_flag:
     logging.info('Enqueing cleanup for model %s' %model_kind)
     enqueue_cleanup(model_kind,frequency,str(date),store_key_name)
Example #3
0
    def post(self):
        store_key_name = self.request.get('store_key_name')
        date = str_to_date(self.request.get('date_string'))
        frequency = self.request.get('frequency')

        renderers = []
        store_key = Key.from_path('Store', store_key_name)
        query = get_counter_query_for_frequency(frequency, date, store_key)

        product_counters = query.fetch(TEMPLATE_PRODUCT_COUNT)
        key_names = [counter.key().name() for counter in product_counters]
        product_renderers = ProductRenderer.get_by_key_name(
            key_names, _storage=[MEMCACHE, DATASTORE], _result_type=NAME_DICT)
        for counter in product_counters:
            renderer = product_renderers[counter.key().name()]
            try:
                renderer.count = counter.count
                renderers.append(renderer)
            except AttributeError:  #Renderer is none
                renderer = ProductRenderer.build(counter.key_root,
                                                 frequency,
                                                 date,
                                                 count=counter.count)
                if renderer is not None:  #building from existing renderers successful
                    renderers.append(renderer)
                else:
                    enqueue_renderer_info(counter.key_root, counter.count,
                                          frequency, date)
        if len(renderers):
            pdb.put(renderers, _storage=[MEMCACHE, DATASTORE])
Example #4
0
  def post(self):
    store_key_name = self.request.get('store_key_name')
    date = str_to_date(self.request.get('date_string'))
    frequency = self.request.get('frequency')
      
    renderers = []
    store_key = Key.from_path('Store',store_key_name)
    query = get_counter_query_for_frequency(frequency, date, store_key)

    product_counters = query.fetch(TEMPLATE_PRODUCT_COUNT)
    key_names = [counter.key().name() for counter in product_counters ]
    product_renderers = ProductRenderer.get_by_key_name(key_names,
                                                        _storage=[MEMCACHE,DATASTORE],
                                                        _result_type=NAME_DICT)
    for counter in product_counters:
      renderer = product_renderers[counter.key().name()]
      try:
        renderer.count = counter.count
        renderers.append(renderer)
      except AttributeError: #Renderer is none
        renderer = ProductRenderer.build(counter.key_root, 
                                         frequency, date,count = counter.count)
        if renderer is not None: #building from existing renderers successful
          renderers.append(renderer)
        else:
          enqueue_renderer_info(counter.key_root, 
                                        counter.count,
                                        frequency,
                                        date)
    if len(renderers):
      pdb.put(renderers, _storage=[MEMCACHE,DATASTORE])