Store artist infos async
This commit is contained in:
@@ -3,6 +3,7 @@ defmodule MusicLibrary.Artists do
|
||||
alias MusicLibrary.Repo
|
||||
|
||||
alias MusicLibrary.Records.{ArtistInfo, ArtistRecord, Record}
|
||||
alias MusicLibrary.{BackgroundRepo, Worker}
|
||||
|
||||
def get_artist!(musicbrainz_id) do
|
||||
q =
|
||||
@@ -58,6 +59,15 @@ defmodule MusicLibrary.Artists do
|
||||
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
|
||||
q =
|
||||
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