微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在分布式模式下,蝗虫可以知道其他工作人员是否已经为特定用户运行任务

如何解决在分布式模式下,蝗虫可以知道其他工作人员是否已经为特定用户运行任务

社区。​​ p>

我需要由不同工作人员创建的用户不能重复。即如果 worker_1 创建用户 fake1 并为此用户运行任务,则 worker_2 必须不能创建用户 fake1

当前仅在独立模式下可用。

credentials = [ (f"fake{i}",'password') for i in range(100) ]

class MobileUser(HttpUser):
    tasks = [RealTiMetask]
    wait_time = constant_pacing(1)

    def __init__(self,parent):
        super().__init__(parent)

        if len(credentials) > 0:
            shuffle(credentials)
            self.username,self.password = credentials.pop()

解决方法

不是。奴隶们彼此之间是幸福的。

我认为您最好的选择是在工作人员启动时设置一个环境变量:

WORKER_ID=1 locust --worker ...

(然后将os.env['WORKER_ID']插入用户名以使其唯一)

每个工作程序有一个唯一的ID(可通过使用self.environment.runner.client_id的任务访问),但是它们没有排序(它们包含主机名+一个UUID),所以我不知道是否真的对您有帮助。

另一种选择可能是使用主机名+进程ID作为标识符。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。