如何解决在分布式模式下,蝗虫可以知道其他工作人员是否已经为特定用户运行任务
社区。 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 举报,一经查实,本站将立刻删除。