Store artist infos async
This commit is contained in:
@@ -3,6 +3,7 @@ defmodule MusicLibrary.Artists do
|
|||||||
alias MusicLibrary.Repo
|
alias MusicLibrary.Repo
|
||||||
|
|
||||||
alias MusicLibrary.Records.{ArtistInfo, ArtistRecord, Record}
|
alias MusicLibrary.Records.{ArtistInfo, ArtistRecord, Record}
|
||||||
|
alias MusicLibrary.{BackgroundRepo, Worker}
|
||||||
|
|
||||||
def get_artist!(musicbrainz_id) do
|
def get_artist!(musicbrainz_id) do
|
||||||
q =
|
q =
|
||||||
@@ -58,6 +59,15 @@ defmodule MusicLibrary.Artists do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def fetch_artist_info_async(artist_id) do
|
||||||
|
meta = %{}
|
||||||
|
params = %{"id" => artist_id}
|
||||||
|
|
||||||
|
params
|
||||||
|
|> Worker.FetchArtistInfo.new(meta: meta)
|
||||||
|
|> BackgroundRepo.insert()
|
||||||
|
end
|
||||||
|
|
||||||
defp get_collected_artist_ids do
|
defp get_collected_artist_ids do
|
||||||
q =
|
q =
|
||||||
from ar in ArtistRecord,
|
from ar in ArtistRecord,
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
defmodule MusicLibrary.Worker.FetchArtistInfo do
|
||||||
|
use Oban.Worker, queue: :default, max_attempts: 3
|
||||||
|
|
||||||
|
@impl Oban.Worker
|
||||||
|
def perform(%Oban.Job{args: %{"id" => artist_id}}) do
|
||||||
|
with {:ok, _artist_info} <- MusicLibrary.Artists.fetch_artist_info(artist_id) do
|
||||||
|
:ok
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
Reference in New Issue
Block a user