From 429dab759d1f21623ae6a7ee4b6d66df1b591ffe Mon Sep 17 00:00:00 2001 From: Ankush Menat Date: Tue, 4 Feb 2025 12:58:29 +0530 Subject: [PATCH] perf: Skip loading EPS if not enabled (#31099) It's disabled by default :shrug: --- frappe/commands/test_commands.py | 12 ++++++------ frappe/desk/form/load.py | 5 +++++ .../energy_point_settings/energy_point_settings.py | 2 +- frappe/tests/test_perf.py | 2 +- 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/frappe/commands/test_commands.py b/frappe/commands/test_commands.py index 0779957a8c..c0aa6e45a6 100644 --- a/frappe/commands/test_commands.py +++ b/frappe/commands/test_commands.py @@ -1059,12 +1059,12 @@ class TestGunicornWorker(IntegrationTestCase): return sum(c.cpu_percent(1.0) for c in process.children(True)) + process.cpu_percent(1.0) self.spawn_gunicorn(["--threads=2"]) - self.assertLessEqual(get_total_usage(), 0.02) + self.assertLessEqual(get_total_usage(), 2) # Wake up at least one thread, go idle and check again path = f"http://{self.TEST_SITE}:{self.port}/api/method/ping" self.assertEqual(requests.get(path).status_code, 200) - self.assertLessEqual(get_total_usage(), 0.02) + self.assertLessEqual(get_total_usage(), 2) class TestRQWorker(IntegrationTestCase): @@ -1088,18 +1088,18 @@ class TestRQWorker(IntegrationTestCase): def test_rq_idle_cpu_usage(self): self.spawn_rq() - self.assertLessEqual(self.get_total_usage(), 0.02) + self.assertLessEqual(self.get_total_usage(), 2) for _ in range(3): frappe.enqueue("frappe.ping") time.sleep(1) - self.assertLessEqual(self.get_total_usage(), 0.02) + self.assertLessEqual(self.get_total_usage(), 2) def test_rq_pool_idle_cpu_usage(self): self.spawn_rq(pool=True) - self.assertLessEqual(self.get_total_usage(), 0.02) + self.assertLessEqual(self.get_total_usage(), 2) for _ in range(3): frappe.enqueue("frappe.ping") time.sleep(1) - self.assertLessEqual(self.get_total_usage(), 0.02) + self.assertLessEqual(self.get_total_usage(), 2) diff --git a/frappe/desk/form/load.py b/frappe/desk/form/load.py index 7a292981dc..79b35bac4a 100644 --- a/frappe/desk/form/load.py +++ b/frappe/desk/form/load.py @@ -247,6 +247,11 @@ def get_comments(doctype: str, name: str, comment_type: str | list[str] = "Comme def get_point_logs(doctype, docname): + from frappe.social.doctype.energy_point_settings.energy_point_settings import is_energy_point_enabled + + if not is_energy_point_enabled(): + return [] + return frappe.get_all( "Energy Point Log", filters={"reference_doctype": doctype, "reference_name": docname, "type": ["!=", "Review"]}, diff --git a/frappe/social/doctype/energy_point_settings/energy_point_settings.py b/frappe/social/doctype/energy_point_settings/energy_point_settings.py index 884cabbe6d..e2dac8bb92 100644 --- a/frappe/social/doctype/energy_point_settings/energy_point_settings.py +++ b/frappe/social/doctype/energy_point_settings/energy_point_settings.py @@ -29,7 +29,7 @@ class EnergyPointSettings(Document): def is_energy_point_enabled(): - return frappe.db.get_single_value("Energy Point Settings", "enabled", True) + return frappe.client_cache.get_doc("Energy Point Settings").enabled def allocate_review_points(): diff --git a/frappe/tests/test_perf.py b/frappe/tests/test_perf.py index e6dc4c6bbc..3f718ba2e5 100644 --- a/frappe/tests/test_perf.py +++ b/frappe/tests/test_perf.py @@ -237,7 +237,7 @@ class TestPerformance(IntegrationTestCase): def test_idle_cpu_utilization_redis_pubsub(self): pid = frappe.client_cache.invalidator_thread.native_id process = psutil.Process(pid) - self.assertLess(process.cpu_percent(interval=1.0), 0.02) + self.assertLess(process.cpu_percent(interval=1.0), 2) def test_cpu_allocation(self): from frappe._optimizations import assign_core