fp/services/bright/lib/bright/jobs/process_vod.ex
2025-01-10 19:10:04 -08:00

32 lines
709 B
Elixir

defmodule Bright.Jobs.ProcessVod do
use Oban.Worker, queue: :default, max_attempts: 3
require Logger
alias Bright.Repo
alias Bright.Streams.Vod
alias Bright.Jobs.CreateHlsPlaylist
@impl Oban.Worker
def perform(%Oban.Job{args: %{"id" => id}} = job) do
Logger.info("Performing job: #{inspect(job)}")
vod = Repo.get!(Vod, id)
cond do
vod.playlist_url == nil and vod.origin_temp_input_url != nil ->
queue_create_hls_playlist(vod)
:ok
true ->
:ok
end
end
defp queue_create_hls_playlist(%Vod{id: id, origin_temp_input_url: url}) do
job_args = %{vod_id: id, input_url: url}
Oban.insert!(CreateHlsPlaylist.new(job_args))
end
end