perf: use client cache for doctype "maps" (#31105)
This commit is contained in:
parent
7718e597e7
commit
174783d0ab
3 changed files with 12 additions and 11 deletions
|
|
@ -18,7 +18,7 @@ class TestMilestoneTracker(IntegrationTestCase):
|
|||
def test_milestone(self):
|
||||
frappe.db.delete("Milestone Tracker")
|
||||
|
||||
frappe.cache.delete_key("milestone_tracker_map")
|
||||
frappe.cache_manager.clear_doctype_map("Milestone Tracker")
|
||||
|
||||
milestone_tracker = frappe.get_doc(
|
||||
doctype="Milestone Tracker", document_type="ToDo", track_field="status"
|
||||
|
|
|
|||
|
|
@ -13,8 +13,8 @@ doctypes_for_mapping = {
|
|||
}
|
||||
|
||||
|
||||
def get_doctype_map_key(doctype):
|
||||
return frappe.scrub(doctype) + "_map"
|
||||
def get_doctype_map_key(doctype, name="*") -> str:
|
||||
return frappe.scrub(doctype) + f"_map::{name}"
|
||||
|
||||
|
||||
doctype_map_keys = tuple(map(get_doctype_map_key, doctypes_for_mapping))
|
||||
|
|
@ -76,6 +76,7 @@ doctype_cache_keys = (
|
|||
wildcard_keys = (
|
||||
"document_cache::*",
|
||||
"table_columns::*",
|
||||
*doctype_map_keys,
|
||||
)
|
||||
|
||||
|
||||
|
|
@ -180,15 +181,14 @@ def clear_controller_cache(doctype=None):
|
|||
|
||||
|
||||
def get_doctype_map(doctype, name, filters=None, order_by=None):
|
||||
return frappe.cache.hget(
|
||||
get_doctype_map_key(doctype),
|
||||
name,
|
||||
lambda: frappe.get_all(doctype, filters=filters, order_by=order_by, ignore_ddl=True),
|
||||
return frappe.client_cache.get_value(
|
||||
get_doctype_map_key(doctype, name),
|
||||
generator=lambda: frappe.get_all(doctype, filters=filters, order_by=order_by, ignore_ddl=True),
|
||||
)
|
||||
|
||||
|
||||
def clear_doctype_map(doctype, name):
|
||||
frappe.cache.hdel(frappe.scrub(doctype) + "_map", name)
|
||||
def clear_doctype_map(doctype, name="*"):
|
||||
frappe.client_cache.delete_keys(get_doctype_map_key(doctype, name))
|
||||
|
||||
|
||||
def build_table_count_cache():
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
# Copyright (c) 2019, Frappe Technologies and Contributors
|
||||
# License: MIT. See LICENSE
|
||||
import frappe
|
||||
from frappe.cache_manager import clear_doctype_map
|
||||
from frappe.desk.form.assign_to import add as assign_to
|
||||
from frappe.desk.page.user_profile.user_profile import get_energy_points_heatmap_data
|
||||
from frappe.tests import IntegrationTestCase, UnitTestCase
|
||||
|
|
@ -34,13 +35,13 @@ class TestEnergyPointLog(IntegrationTestCase):
|
|||
settings.save()
|
||||
|
||||
def setUp(self):
|
||||
frappe.cache.delete_value("energy_point_rule_map")
|
||||
clear_doctype_map("Energy Point Rule")
|
||||
|
||||
def tearDown(self):
|
||||
frappe.set_user("Administrator")
|
||||
frappe.db.delete("Energy Point Log")
|
||||
frappe.db.delete("Energy Point Rule")
|
||||
frappe.cache.delete_value("energy_point_rule_map")
|
||||
clear_doctype_map("Energy Point Rule")
|
||||
|
||||
def test_user_energy_point(self):
|
||||
frappe.set_user("test@example.com")
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue