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
This commit is contained in:
Daniel Cortes
2020-06-08 21:00:44 -04:00
parent 4066a6c9e1
commit 06b2ff0c4b

View File

@@ -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: