Configurando quantidade de tentativas no Oban
defmodule CoffeeShop.Integrations.Coffee.HotCoffeesWorker do
use Oban.Worker, max_attempts: 2
alias CoffeeShop.Integrations.Coffee.Response
alias CoffeeShop.Integrations.Coffee.Client
@impl Oban.Worker
def perform(%Oban.Job{args: %{"opts" => opts}}) do
opts = to_list(opts)
case Client.all_hot_coffees(opts) do
{:ok, %Response{status: 200, body: _body}} -> :ok
{:ok, %Response{status: status, body: _body}} -> {:error, "status: #{status}"}
error -> error
end
end
defp to_list(map) do
Enum.map(map, fn {key, value} -> {String.to_existing_atom(key), value} end)
end
endAtualizado