Add utility function to return infinite timeout for SQL transactions if we detect it was called from a Mix Task

This commit is contained in:
Mark Felder 2021-04-20 11:10:39 -05:00
parent 0effcd2cfe
commit 9bc69196d5

View file

@ -63,4 +63,13 @@ def posix_error_message(code) when code in @posix_error_codes do
end
def posix_error_message(_), do: ""
def query_timeout do
{parent, _, _, _} = Process.info(self(), :current_stacktrace) |> elem(1) |> Enum.fetch!(2)
cond do
parent |> to_string |> String.starts_with?("Elixir.Mix.Task") -> [timeout: :infinity]
true -> [timeout: 15_000]
end
end
end