From f57e004bef9eaecee0442a277f47115a4d098017 Mon Sep 17 00:00:00 2001 From: Andrew Baldwin Date: Thu, 4 Apr 2024 10:23:37 +0200 Subject: [PATCH] Update user classes across workers / processes --- locust/env.py | 3 +++ locust/runners.py | 2 ++ 2 files changed, 5 insertions(+) diff --git a/locust/env.py b/locust/env.py index 2ccb1ec961..8ac7fd46b8 100644 --- a/locust/env.py +++ b/locust/env.py @@ -198,6 +198,9 @@ def create_web_ui( return self.web_ui def update_user_class(self, user_settings): + if isinstance(self.runner, MasterRunner): + self.runner.send_message("update_user_class", user_settings) + user_class_name = user_settings.get("user_class_name") user_class = self.available_user_classes[user_class_name] user_tasks = self.available_user_tasks[user_class_name] diff --git a/locust/runners.py b/locust/runners.py index a22f9f3006..939ce50ce3 100644 --- a/locust/runners.py +++ b/locust/runners.py @@ -1395,6 +1395,8 @@ def worker(self) -> NoReturn: self.reset_connection() elif msg.type == "heartbeat": self.last_heartbeat_timestamp = time.time() + elif msg.type == "update_user_class": + self.environment.update_user_class(msg.data) elif msg.type in self.custom_messages: logger.debug("Received %s message from master" % msg.type) listener, concurrent = self.custom_messages[msg.type]