Packages

Blitzy - HTTP load tester in Elixir

Current section

Files

Jump to
blitzy lib worker.ex
Raw

lib/worker.ex

defmodule Blitzy.Worker do
use Timex
require Logger
def start(url) do
{timestamp, response} = Time.measure(fn -> HTTPoison.get(url) end)
handle_response({Time.to_msecs(timestamp), response})
end
defp handle_response({msecs, {:ok, %HTTPoison.Response{status_code: code}}})
when code >= 200 and code <= 304 do
Logger.info "worker [#{node}-#{inspect self}] completed in #{msecs} msecs"
{:ok, msecs}
end
defp handle_response({_msecs, {:error, reason}}) do
Logger.info "worker [#{node}-#{inspect self}] error due to #{inspect reason}"
{:error, reason}
end
defp handle_response({_msecs, _}) do
Logger.info "worker [#{node}-#{inspect self}] errored out"
{:error, :unknown}
end
end