Beispiel #1
0
 def delete(self):
     config = CounterShardConfiguration.get_by_key_name(self.name)
     if config:
         config.delete()
     for c in CounterShard.find_by_name(self.name):
         c.delete()
     logging.debug("deleted %s" % self.name)
Beispiel #2
0
 def delete(self):
     config = CounterShardConfiguration.get_by_key_name(self.name)
     if config:
         config.delete()
     for c in CounterShard.find_by_name(self.name):
         c.delete()
     logging.debug("deleted %s" % self.name)
Beispiel #3
0
 def __counter_tx(self, counter_call):
     name = self.name
     config = CounterShardConfiguration.get_or_insert(name, name=name)
     def txn():
         index = random.randint(0, config.shard_count - 1)
         shard_name = "%s/%s" % (name, str(index))
         counter = CounterShard.get_by_key_name(shard_name)
         if counter is None:
             counter = CounterShard(key_name=shard_name, name=name, **self.__kw)
             logging.debug("creating %s" % name)
             
         counter_call(counter)
         
         # I may have decremented a counter down to 0.  in this case I want to delete it
         if counter.count > 0:
             counter.put()
         else:
             counter.delete()
             logging.debug("name:%s count:%s" % (name, counter.count))
     db.run_in_transaction(txn)
Beispiel #4
0
    def __counter_tx(self, counter_call):
        name = self.name
        config = CounterShardConfiguration.get_or_insert(name, name=name)

        def txn():
            index = random.randint(0, config.shard_count - 1)
            shard_name = "%s/%s" % (name, str(index))
            counter = CounterShard.get_by_key_name(shard_name)
            if counter is None:
                counter = CounterShard(key_name=shard_name,
                                       name=name,
                                       **self.__kw)
                logging.debug("creating %s" % name)

            counter_call(counter)

            # I may have decremented a counter down to 0.  in this case I want to delete it
            if counter.count > 0:
                counter.put()
            else:
                counter.delete()
                logging.debug("name:%s count:%s" % (name, counter.count))

        db.run_in_transaction(txn)