prop/lib/mix/tasks/propagation_grid.ex

29 lines
759 B
Elixir

defmodule Mix.Tasks.PropagationGrid do
@shortdoc "Compute propagation scores for the CONUS grid"
@moduledoc "Manually trigger propagation grid computation."
use Mix.Task
@impl Mix.Task
def run(_args) do
# Pause all Oban queues so backfill jobs don't run alongside the grid fetch
Application.put_env(
:microwaveprop,
Oban,
Keyword.put(
Application.get_env(:microwaveprop, Oban, []),
:queues,
false
)
)
Mix.Task.run("app.start")
IO.puts("Starting propagation grid computation...")
case Microwaveprop.Workers.PropagationGridWorker.perform(%Oban.Job{args: %{}}) do
:ok -> IO.puts("Done!")
{:error, reason} -> IO.puts("Error: #{inspect(reason)}")
end
end
end