当前位置: 首页>>代码示例>>Python>>正文


Python cache.set_many方法代码示例

本文整理汇总了Python中django.core.cache.cache.set_many方法的典型用法代码示例。如果您正苦于以下问题:Python cache.set_many方法的具体用法?Python cache.set_many怎么用?Python cache.set_many使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在django.core.cache.cache的用法示例。


在下文中一共展示了cache.set_many方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: test_unicode

# 需要导入模块: from django.core.cache import cache [as 别名]
# 或者: from django.core.cache.cache import set_many [as 别名]
def test_unicode(self):
        # Unicode values can be cached
        stuff = {
            "ascii": "ascii_value",
            "unicode_ascii": "Iñtërnâtiônàlizætiøn1",
            "Iñtërnâtiônàlizætiøn": "Iñtërnâtiônàlizætiøn2",
            "ascii2": {"x": 1},
        }
        # Test `set`
        for (key, value) in stuff.items():
            cache.set(key, value)
            assert cache.get(key) == value

        # Test `add`
        for (key, value) in stuff.items():
            cache.delete(key)
            cache.add(key, value)
            assert cache.get(key) == value

        # Test `set_many`
        for key, _value in stuff.items():
            cache.delete(key)
        cache.set_many(stuff)
        for (key, value) in stuff.items():
            assert cache.get(key) == value 
开发者ID:adamchainz,项目名称:django-mysql,代码行数:27,代码来源:test_cache.py

示例2: test_binary_string

# 需要导入模块: from django.core.cache import cache [as 别名]
# 或者: from django.core.cache.cache import set_many [as 别名]
def test_binary_string(self):
        # Binary strings should be cacheable
        from zlib import compress, decompress

        value = "value_to_be_compressed"
        compressed_value = compress(value.encode())

        # Test set
        cache.set("binary1", compressed_value)
        compressed_result = cache.get("binary1")
        assert compressed_value == compressed_result
        assert value == decompress(compressed_result).decode()

        # Test add
        cache.add("binary1-add", compressed_value)
        compressed_result = cache.get("binary1-add")
        assert compressed_value == compressed_result
        assert value == decompress(compressed_result).decode()

        # Test set_many
        cache.set_many({"binary1-set_many": compressed_value})
        compressed_result = cache.get("binary1-set_many")
        assert compressed_value == compressed_result
        assert value == decompress(compressed_result).decode() 
开发者ID:adamchainz,项目名称:django-mysql,代码行数:26,代码来源:test_cache.py

示例3: test_long_timeout

# 需要导入模块: from django.core.cache import cache [as 别名]
# 或者: from django.core.cache.cache import set_many [as 别名]
def test_long_timeout(self):
        """
        Using a timeout greater than 30 days makes memcached think
        it is an absolute expiration timestamp instead of a relative
        offset. Test that we honour this convention. Refs #12399.
        """
        cache.set("key1", "eggs", 60 * 60 * 24 * 30 + 1)  # 30 days + 1 second
        assert cache.get("key1") == "eggs"

        cache.add("key2", "ham", 60 * 60 * 24 * 30 + 1)
        assert cache.get("key2") == "ham"

        cache.set_many(
            {"key3": "sausage", "key4": "lobster bisque"}, 60 * 60 * 24 * 30 + 1
        )
        assert cache.get("key3") == "sausage"
        assert cache.get("key4") == "lobster bisque" 
开发者ID:adamchainz,项目名称:django-mysql,代码行数:19,代码来源:test_cache.py

示例4: test_forever_timeout

# 需要导入模块: from django.core.cache import cache [as 别名]
# 或者: from django.core.cache.cache import set_many [as 别名]
def test_forever_timeout(self):
        """
        Passing in None into timeout results in a value that is cached forever
        """
        cache.set("key1", "eggs", None)
        assert cache.get("key1") == "eggs"

        cache.add("key2", "ham", None)
        assert cache.get("key2") == "ham"
        added = cache.add("key1", "new eggs", None)
        assert not added
        assert cache.get("key1") == "eggs"

        cache.set_many({"key3": "sausage", "key4": "lobster bisque"}, None)
        assert cache.get("key3") == "sausage"
        assert cache.get("key4") == "lobster bisque" 
开发者ID:adamchainz,项目名称:django-mysql,代码行数:18,代码来源:test_cache.py

示例5: test_set_many_expiration

# 需要导入模块: from django.core.cache import cache [as 别名]
# 或者: from django.core.cache.cache import set_many [as 别名]
def test_set_many_expiration(self):
        # set_many takes a second ``timeout`` parameter
        # Perform a single query first to avoid spurious on-connect queries
        caches["no_cull"].get("nonexistent")
        with self.assertNumQueries(1):
            caches["no_cull"].set_many({"key1": "spam", "key2": "eggs"}, 0.1)
        cache.set("key3", "ham")
        time.sleep(0.2)

        assert cache.get("key1") is None
        assert cache.get("key2") is None
        assert cache.get("key3") == "ham"

        # set_many expired values can be replaced
        with self.assertNumQueries(1):
            caches["no_cull"].set_many(
                {"key1": "spam", "key2": "egg", "key3": "spam", "key4": "ham"}, 1
            )
        v = cache.get("key1")
        assert v == "spam"
        assert cache.get("key2") == "egg"
        assert cache.get("key3") == "spam"
        assert cache.get("key4") == "ham" 
开发者ID:adamchainz,项目名称:django-mysql,代码行数:25,代码来源:test_cache.py

示例6: set_user_course_permissions

# 需要导入模块: from django.core.cache import cache [as 别名]
# 或者: from django.core.cache.cache import set_many [as 别名]
def set_user_course_permissions(user, courses):
    """
    Sets which courses user is allowed to view.

    Arguments
        user (User)     --  User for which permissions should be set
        courses (list)  --  List of course ID strings
    """
    if not user:
        raise ValueError('User not specified!')

    if courses is None:
        raise ValueError('Courses not specified!')

    # Ensure courses are stored as a list.
    courses = list(courses)

    key_courses, key_last_updated = _get_course_permission_cache_keys(user)

    data = {key_courses: courses, key_last_updated: datetime.datetime.utcnow()}
    cache.set_many(data, settings.COURSE_PERMISSIONS_TIMEOUT) 
开发者ID:edx,项目名称:edx-analytics-dashboard,代码行数:23,代码来源:permissions.py

示例7: cache

# 需要导入模块: from django.core.cache import cache [as 别名]
# 或者: from django.core.cache.cache import set_many [as 别名]
def cache(seconds=60):
    def decorator(func):
        @wraps(func)
        def wrapper(admin, model):
            cache_method_key = helper.cache_method_key(model, func.__name__)
            value = django_cache.get(cache_method_key)
            if not value:
                value = func(admin, model)
                cache_object_key = helper.cache_object_key(model)
                obj_methods_caches = django_cache.get(cache_object_key) or ''
                django_cache.set_many({
                    cache_method_key: value,
                    cache_object_key: obj_methods_caches + '|' + cache_method_key
                }, seconds)
            return value

        return wrapper
    return decorator 
开发者ID:ebertti,项目名称:django-admin-easy,代码行数:20,代码来源:decorators.py

示例8: get_cleaned_articles

# 需要导入模块: from django.core.cache import cache [as 别名]
# 或者: from django.core.cache.cache import set_many [as 别名]
def get_cleaned_articles(articles) -> dict:
    from_cache = cache.get_many([cache_id_to_key(a.id) for a in articles])
    rv = {cache_key_to_id(k): v for k, v in from_cache.items()}

    to_cache = dict()
    for article in articles:
        if article.id in rv:
            continue

        cleaned = html_processing.clean_article(
            article.content,
            base_url=article.feed.uri
        )
        rv[article.id] = cleaned
        to_cache[cache_id_to_key(article.id)] = cleaned

    if to_cache:
        cache.set_many(to_cache, timeout=7200)

    return rv 
开发者ID:NicolasLM,项目名称:feedsubs,代码行数:22,代码来源:caching.py

示例9: get_parts

# 需要导入模块: from django.core.cache import cache [as 别名]
# 或者: from django.core.cache.cache import set_many [as 别名]
def get_parts(self):
        """
        Returns GSX parts for a product with this device's serialNumber
        """
        results = {}
        cache_key = "%s_parts" % self.sn

        for p in gsxws.Product(self.sn).parts():
            product = Product.from_gsx(p)
            results[product.code] = product

        cache.set_many(results)
        cache.set(cache_key, results.values())

        return results.values() 
开发者ID:fpsw,项目名称:Servo,代码行数:17,代码来源:device.py

示例10: handle

# 需要导入模块: from django.core.cache import cache [as 别名]
# 或者: from django.core.cache.cache import set_many [as 别名]
def handle(self, *args, **options):
        cache.set_many(dict((key, None) for key in args)) 
开发者ID:chaoss,项目名称:prospector,代码行数:4,代码来源:clear_cache.py

示例11: save_lookups

# 需要导入模块: from django.core.cache import cache [as 别名]
# 或者: from django.core.cache.cache import set_many [as 别名]
def save_lookups(self, items):
        """
        Cache the items we looked up for a small amount of time.
        """
        cache.set_many(
            {f"{self.CACHE_KEY}{key}": value for key, value in items.items()},
            timeout=60,
        ) 
开发者ID:webkom,项目名称:lego,代码行数:10,代码来源:attr_cache.py

示例12: test_zero_timeout

# 需要导入模块: from django.core.cache import cache [as 别名]
# 或者: from django.core.cache.cache import set_many [as 别名]
def test_zero_timeout(self):
        """
        Passing in zero into timeout results in a value that is not cached
        """
        cache.set("key1", "eggs", 0)
        assert cache.get("key1") is None

        cache.add("key2", "ham", 0)
        assert cache.get("key2") is None

        cache.set_many({"key3": "sausage", "key4": "lobster bisque"}, 0)
        assert cache.get("key3") is None
        assert cache.get("key4") is None 
开发者ID:adamchainz,项目名称:django-mysql,代码行数:15,代码来源:test_cache.py

示例13: test_delete_with_prefix_with_no_reverse_works

# 需要导入模块: from django.core.cache import cache [as 别名]
# 或者: from django.core.cache.cache import set_many [as 别名]
def test_delete_with_prefix_with_no_reverse_works(self):
        cache.set_many({"K1": "value", "K2": "value2", "B2": "Anothervalue"})
        assert cache.delete_with_prefix("K") == 2
        assert cache.get_many(["K1", "K2", "B2"]) == {"B2": "Anothervalue"} 
开发者ID:adamchainz,项目名称:django-mysql,代码行数:6,代码来源:test_cache.py

示例14: test_cull_max_entries_minus_one

# 需要导入模块: from django.core.cache import cache [as 别名]
# 或者: from django.core.cache.cache import set_many [as 别名]
def test_cull_max_entries_minus_one(self):
        # cull with MAX_ENTRIES = -1 should never clear anything that is not
        # expired

        # one expired key
        cache.set("key", "value", 0.1)
        time.sleep(0.2)

        # 90 non-expired keys
        for n in range(9):
            cache.set_many({str(n * 10 + i): True for i in range(10)})

        cache.cull()
        assert self.table_count() == 90 
开发者ID:adamchainz,项目名称:django-mysql,代码行数:16,代码来源:test_cache.py

示例15: get_context_data

# 需要导入模块: from django.core.cache import cache [as 别名]
# 或者: from django.core.cache.cache import set_many [as 别名]
def get_context_data(self, *args, **kwargs):
        context = super(InboxView, self).get_context_data(*args, **kwargs)

        object_list = []
        object_id_list = []
        for email in context["page_obj"].object_list:
            object_list.append(email)
            object_id_list.append(email.id)

        if len(object_id_list) == 0:
            return context

        headers = cache.get_many(object_id_list, version="email-header")

        missing_list = set(object_id_list) - set(headers.keys())
        if len(missing_list) > 0:
            missing_headers = models.Header.objects.filter(part__parent=None, part__email__in=missing_list)
            missing_headers = missing_headers.get_many("Subject", "From", group_by="part__email_id")
            headers.update(missing_headers)
            cache.set_many(missing_headers, version="email-header", timeout=None)

        for email in object_list:
            header_set = headers[email.id]
            email.subject = header_set.get("Subject")
            email.sender = header_set["From"]

        inbox = getattr(self, 'inbox_obj', None)
        if inbox is not None:
            inbox = inbox.id

        set_emails_to_seen.delay(object_id_list, self.request.user.id, inbox)
        return context 
开发者ID:Inboxen,项目名称:Inboxen,代码行数:34,代码来源:inbox.py


注:本文中的django.core.cache.cache.set_many方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。