python类incr()的实例源码

rejudge.py 文件源码 项目:eoj3 作者: ultmaster 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def rejudge_submission_set(submission_set):
    cache.set(REJUDGE_COUNTER, 0)

    def decrease_counter():
        try:
            cache.decr(REJUDGE_COUNTER, 1)
        except ValueError:
            cache.set(REJUDGE_COUNTER, 0)

    with transaction.atomic():
        for submission in submission_set:
            submission.status_private = submission.status = SubmissionStatus.WAITING
            submission.status_detail = ""
            submission.status_message = ""
            submission.save(update_fields=["status_private", "status", "status_detail", "status_message"])

    for submission in submission_set:
        while cache.get_or_set(REJUDGE_COUNTER, 0) >= REJUDGE_TASK_LIMIT:
            sleep(1)
        try:
            cache.incr(REJUDGE_COUNTER, 1)
        except:
            cache.set(REJUDGE_COUNTER, 0)
        rejudge_submission(submission, decrease_counter)
tests.py 文件源码 项目:django-lrucache-backend 作者: kogan 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def test_incr_decr_timeout(self):
        """incr/decr does not modify expiry time (matches memcached behavior)"""
        cache = self.cache
        key = 'value'
        cache.set(key, 1, timeout=10000)
        _, exp = cache._get(key)
        cache.incr(key)
        self.assertEqual(exp, cache._get(key)[1])
        cache.decr(key)
        self.assertEqual(exp, cache._get(key)[1])
tests.py 文件源码 项目:django-lrucache-backend 作者: kogan 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def test_incr(self):
        # Cache values can be incremented
        cache = self.cache
        cache.set('answer', 41)
        self.assertEqual(cache.incr('answer'), 42)
        self.assertEqual(cache.get('answer'), 42)
        self.assertEqual(cache.incr('answer', 10), 52)
        self.assertEqual(cache.get('answer'), 52)
        self.assertEqual(cache.incr('answer', -10), 42)
        with self.assertRaises(ValueError):
            cache.incr('does_not_exist')
tests.py 文件源码 项目:django-lrucache-backend 作者: kogan 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def test_cache_versioning_incr_decr(self):
        cache = self.cache
        cache2 = LRUObjectCache('lru2', dict(VERSION=2))
        cache2._cache = cache._cache

        cache.set('answer1', 37, version=1)
        cache.set('answer1', 42, version=2)
        cache.incr('answer1')
        self.assertEqual(cache.get('answer1', version=1), 38)
        self.assertEqual(cache.get('answer1', version=2), 42)
        cache.decr('answer1')
        self.assertEqual(cache.get('answer1', version=1), 37)
        self.assertEqual(cache.get('answer1', version=2), 42)

        cache.set('answer2', 37, version=1)
        cache.set('answer2', 42, version=2)
        cache.incr('answer2', version=2)
        self.assertEqual(cache.get('answer2', version=1), 37)
        self.assertEqual(cache.get('answer2', version=2), 43)
        cache.decr('answer2', version=2)
        self.assertEqual(cache.get('answer2', version=1), 37)
        self.assertEqual(cache.get('answer2', version=2), 42)

        cache.set('answer3', 37, version=1)
        cache.set('answer3', 42, version=2)
        cache2.incr('answer3')
        self.assertEqual(cache.get('answer3', version=1), 37)
        self.assertEqual(cache.get('answer3', version=2), 43)
        cache2.decr('answer3')
        self.assertEqual(cache.get('answer3', version=1), 37)
        self.assertEqual(cache.get('answer3', version=2), 42)

        cache.set('answer4', 37, version=1)
        cache.set('answer4', 42, version=2)
        cache2.incr('answer4', version=1)
        self.assertEqual(cache.get('answer4', version=1), 38)
        self.assertEqual(cache.get('answer4', version=2), 42)
        cache2.decr('answer4', version=1)
        self.assertEqual(cache.get('answer4', version=1), 37)
        self.assertEqual(cache.get('answer4', version=2), 42)
ratelimitcache.py 文件源码 项目:ecs 作者: ecs-org 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def cache_incr(self, key):
        # memcache is only backend that can increment atomically
        try:
            # add first, to ensure the key exists
            cache.add(key, 0, timeout=self.expire_after())
            cache.incr(key)
        except AttributeError:
            cache.set(key, cache.get(key, 0) + 1, self.expire_after())
base.py 文件源码 项目:ablator 作者: ablator 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def _increase(k):
    cache.incr(k)
permissions.py 文件源码 项目:DjangoCMS 作者: farhan711 项目源码 文件源码 阅读 28 收藏 0 点赞 0 评论 0
def clear_permission_cache():
    from django.core.cache import cache
    version = get_cache_permission_version()
    if version > 1:
        cache.incr(get_cache_permission_version_key())
    else:
        cache.set(get_cache_permission_version_key(), 2,
                  get_cms_setting('CACHE_DURATIONS')['permissions'])
tests.py 文件源码 项目:django-asyncio-redis 作者: mackeyja92 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def test_incr(self):
        key = 'key-to-incr'
        await cache.set(key, 1)
        await cache.incr(key)
        result = await cache.get(key)
        self.assertEqual(result, 2)
tests.py 文件源码 项目:django-cache-extension 作者: shanbay 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def test_incr(self):
        key = "album_total_num"
        cache.set(key, self.num_albums)
        result = cache.incr(key, 1)
        self.assertEqual(result, self.num_albums+1)


问题


面经


文章

微信
公众号

扫码关注公众号