32 lines
709 B
Elixir
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
|