예제 #1
0
파일: counter.py 프로젝트: moefang/nacelle
 def txn():
     index = random.randint(0, config.num_shards - 1)
     shard_name = name + str(index)
     counter = GeneralCounterShard.get_by_key_name(shard_name)
     if counter is None:
         counter = GeneralCounterShard(key_name=shard_name, name=name)
     counter.count += 1
     counter.put()
예제 #2
0
파일: counter.py 프로젝트: moefang/nacelle
def get_count(name):

    """
    Retrieve the value for a given sharded counter.

    Parameters:
      name - The name of the counter
    """

    total = memcache.get(name)
    if total is None:
        total = 0
        for counter in GeneralCounterShard.all().filter('name = ', name):
            total += counter.count
        memcache.add(name, total, 60)
    return total