From 06b2ff0c4b52d588d72b4b737ded43f0e86644ee Mon Sep 17 00:00:00 2001 From: Daniel Cortes Date: Mon, 8 Jun 2020 21:00:44 -0400 Subject: [PATCH] load_cover_art como job de alta prioridad Ya que no tengo limite de request por segundo a coverart archive solo hago mas lento el worker default con las request hacia alla sumando a que tengo que esperar a que termine el resto En un worker separado no tengo esas limitaciones --- fetcher/jobs.py | 40 ++++++++++++++++++++++++++++++++++------ 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/fetcher/jobs.py b/fetcher/jobs.py index 3450a2e..a93d198 100644 --- a/fetcher/jobs.py +++ b/fetcher/jobs.py @@ -11,6 +11,38 @@ _log = logging.getLogger('fetcher_jobs') _log.addHandler(logging.NullHandler()) +@django_rq.job('high') +def load_release_cover_art(release): + """Carga en cache el cover art de una release""" + mbid = release + if isinstance(release, dict): + mbid = release.get('id') + + if cache.ttl(f'release_cover_art_{mbid}') is None: + _log.info('El cover art ya estaba guardado') + return + + cover_art = mb.get_release_cover_art(mbid) + cache.set(f'release_cover_art_{mbid}', json.dumps(cover_art), timeout=None) + _log.info('Cover art de release %s almacenado en cache', mbid) + + +@django_rq.job('high') +def load_release_group_cover_art(release_group): + """Carga en cache el cover art de un release group""" + mbid = release_group + if isinstance(release_group, dict): + mbid = release_group.get('id') + + if cache.ttl(f'release_group_cover_art_{mbid}') is None: + _log.info('El cover art ya estaba guardado') + return + + cover_art = mb.get_release_group_cover_art(mbid) + cache.set(f'release_group_cover_art_{mbid}', json.dumps(cover_art), timeout=None) + _log.info('Cover art de release group %s almacenado en cache', mbid) + + @django_rq.job def load_entities_of_recording(recording): """Carga en cache una grabacion y sus entidades relacionadas""" @@ -46,9 +78,7 @@ def load_entities_of_release(release): cache.set(f'release_{mbid}', json.dumps(release), timeout=None) _log.info('Release %s fue almacenada en cache', mbid) - cover_art = mb.get_release_cover_art(mbid) - cache.set(f'release_cover_art_{mbid}', json.dumps(cover_art), timeout=None) - _log.info('Cover art de release %s almacenada en cache', mbid) + load_release_cover_art.delay(release) offset = 0 while True: @@ -78,9 +108,7 @@ def load_entities_of_release_group(release_group): cache.set(f'release_group_{mbid}', json.dumps(release_group), timeout=None) _log.info('Release Group %s almacenado en cache', mbid) - cover_art = mb.get_release_group_cover_art(mbid) - cache.set(f'release_group_cover_art_{mbid}', json.dumps(cover_art), timeout=None) - _log.info('Cover art de release group %s almacenada en cache', mbid) + load_release_group_cover_art.delay(release_group) offset = 0 while True: