sync with develop

This commit is contained in:
Alexander Strizhakov 2020-02-18 12:19:10 +03:00
commit 1f29ecdcd7
No known key found for this signature in database
GPG key ID: 022896A53AEF1381
6 changed files with 99 additions and 50 deletions

View file

@ -20,31 +20,31 @@ defmodule Pleroma.LoadTesting.Users do
def generate(opts \\ []) do
opts = Keyword.merge(@defaults, opts)
IO.puts("Starting generating #{opts[:users]} users...")
{time, _} = :timer.tc(fn -> generate_users(opts[:users]) end)
IO.puts("Generating users take #{to_sec(time)} sec.\n")
generate_users(opts[:users])
main_user =
Repo.one(from(u in User, where: u.local == true, order_by: fragment("RANDOM()"), limit: 1))
IO.puts("Starting making friends for #{opts[:friends]} users...")
{time, _} = :timer.tc(fn -> make_friends(main_user, opts[:friends]) end)
IO.puts("Making friends take #{to_sec(time)} sec.\n")
make_friends(main_user, opts[:friends])
Repo.get(User, main_user.id)
end
defp generate_users(max) do
Task.async_stream(
1..max,
&generate_user(&1),
max_concurrency: @max_concurrency,
timeout: 30_000
)
|> Stream.run()
def generate_users(max) do
IO.puts("Starting generating #{opts[:users]} users...")
{time, _} =
:timer.tc(fn ->
Task.async_stream(
1..max,
&generate_user(&1),
max_concurrency: @max_concurrency,
timeout: 30_000
)
|> Stream.run()
end)
IO.puts("Generating users take #{to_sec(time)} sec.\n")
end
defp generate_user(i) do
@ -86,18 +86,25 @@ defmodule Pleroma.LoadTesting.Users do
Map.merge(user, urls)
end
defp make_friends(main_user, max) when is_integer(max) do
number_of_users =
(max / 2)
|> Kernel.trunc()
def make_friends(main_user, max) when is_integer(max) do
IO.puts("Starting making friends for #{opts[:friends]} users...")
main_user
|> get_users(%{limit: number_of_users, local: :local})
|> run_stream(main_user)
{time, _} =
:timer.tc(fn ->
number_of_users =
(max / 2)
|> Kernel.trunc()
main_user
|> get_users(%{limit: number_of_users, local: :external})
|> run_stream(main_user)
main_user
|> get_users(%{limit: number_of_users, local: :local})
|> run_stream(main_user)
main_user
|> get_users(%{limit: number_of_users, local: :external})
|> run_stream(main_user)
end)
IO.puts("Making friends take #{to_sec(time)} sec.\n")
end
defp make_friends(%User{} = main_user, %User{} = user) do