From 8c8be100838b817422c23d722aada28261b6e34a Mon Sep 17 00:00:00 2001 From: Kieran Eglin Date: Tue, 21 Jan 2025 14:56:22 -0800 Subject: [PATCH] Updated default job priorities for downloading queue --- config/runtime.exs | 2 +- .../downloading/media_download_worker.ex | 1 + .../downloading/media_download_worker_test.exs | 17 ++++++++++++----- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/config/runtime.exs b/config/runtime.exs index df8ef50..4f0a5ca 100644 --- a/config/runtime.exs +++ b/config/runtime.exs @@ -47,7 +47,7 @@ config :pinchflat, Pinchflat.Repo, config :pinchflat, Oban, queues: [ default: 10, - fast_indexing: 6, + fast_indexing: yt_dlp_worker_count, media_collection_indexing: yt_dlp_worker_count, media_fetching: yt_dlp_worker_count, remote_metadata: yt_dlp_worker_count, diff --git a/lib/pinchflat/downloading/media_download_worker.ex b/lib/pinchflat/downloading/media_download_worker.ex index e442344..7a6f8e8 100644 --- a/lib/pinchflat/downloading/media_download_worker.ex +++ b/lib/pinchflat/downloading/media_download_worker.ex @@ -3,6 +3,7 @@ defmodule Pinchflat.Downloading.MediaDownloadWorker do use Oban.Worker, queue: :media_fetching, + priority: 5, unique: [period: :infinity, states: [:available, :scheduled, :retryable, :executing]], tags: ["media_item", "media_fetching", "show_in_dashboard"] diff --git a/test/pinchflat/downloading/media_download_worker_test.exs b/test/pinchflat/downloading/media_download_worker_test.exs index e104f27..812ec95 100644 --- a/test/pinchflat/downloading/media_download_worker_test.exs +++ b/test/pinchflat/downloading/media_download_worker_test.exs @@ -46,13 +46,20 @@ defmodule Pinchflat.Downloading.MediaDownloadWorkerTest do assert_enqueued(worker: MediaDownloadWorker, args: %{"id" => media_item.id, "force" => true}) end - test "can be called with additional job options", %{media_item: media_item} do - job_opts = [max_attempts: 5] - - assert {:ok, _} = MediaDownloadWorker.kickoff_with_task(media_item, %{}, job_opts) + test "has a priority of 5 by default", %{media_item: media_item} do + assert {:ok, _} = MediaDownloadWorker.kickoff_with_task(media_item) [job] = all_enqueued(worker: MediaDownloadWorker, args: %{"id" => media_item.id}) - assert job.max_attempts == 5 + + assert job.priority == 5 + end + + test "priority can be set", %{media_item: media_item} do + assert {:ok, _} = MediaDownloadWorker.kickoff_with_task(media_item, %{}, priority: 0) + + [job] = all_enqueued(worker: MediaDownloadWorker, args: %{"id" => media_item.id}) + + assert job.priority == 0 end end