Packages
exq
0.2.3
0.23.0
0.22.0
0.21.0
0.20.0
0.19.0
0.18.0
0.17.0
0.16.2
0.16.1
0.16.0
0.15.0
0.14.0
0.13.5
0.13.4
0.13.3
0.13.2
0.13.1
0.13.0
0.12.2
0.12.1
0.12.0
0.11.0
0.10.1
0.10.0
0.9.1
0.9.0
0.8.7
0.8.6
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.3
0.7.2
0.7.1
0.7.0
0.6.5
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.0
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.0
0.2.3
0.2.2
0.2.1
0.2.0
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
0.0.2
Exq is a job processing library compatible with Resque / Sidekiq for the Elixir language.
Current section
Files
Jump to
Current section
Files
test/performance_test.exs
Code.require_file "test_helper.exs", __DIR__
defmodule PerformanceTest do
use ExUnit.Case
require Logger
import ExqTestUtil
setup do
TestRedis.setup
on_exit fn ->
TestRedis.teardown
end
:ok
end
defmodule Worker do
def perform(arg) do
if arg == "last" do
Logger.info("Last message detected")
send(:tester, :done)
end
end
end
test "test to_job_json performance" do
started = :os.timestamp
max_timeout_ms = 3_000
for _ <- 1..5000, do: Exq.Redis.JobQueue.to_job_json("default", PerformanceTest.Worker, ["keep_on_trucking"])
elapsed_ms = :timer.now_diff(:os.timestamp, started) / 1_000
Logger.debug "to_job_json performance test took #{elapsed_ms / 1_000} secs"
assert elapsed_ms < max_timeout_ms
end
test "performance is in acceptable range" do
Process.register(self(), :tester)
started = :os.timestamp
max_timeout_ms = 10 * 1_000
{:ok, sup} = Exq.start([name: :perf, host: '127.0.0.1', port: 6555, namespace: "test", concurrency: :infinite])
for _ <- 1..5000, do: Exq.enqueue(:perf, "default", PerformanceTest.Worker, ["keep_on_trucking"])
Exq.enqueue(:perf, "default", PerformanceTest.Worker, ["last"])
# Wait for last message
receive do
:done -> Logger.info("Received done")
after
# This won't count enqueue
max_timeout_ms -> assert false, "Timeout of #{max_timeout_ms} reached for performance test"
end
elapsed_ms = :timer.now_diff(:os.timestamp, started) / 1_000
Logger.debug "Perf test took #{elapsed_ms / 1_000} secs"
count = Exq.Redis.Connection.llen!(:testredis, "test:queue:default")
assert count == "0"
assert elapsed_ms < max_timeout_ms
stop_process(sup)
end
end