Files
music_library/backlog/completed/ml-95 - Process.sleep-for-rate-limiting-in-Oban-workers.md
T
2026-05-04 21:22:27 +01:00

43 lines
1.3 KiB
Markdown

---
id: ML-95
title: Process.sleep for rate limiting in Oban workers
status: Done
assignee: []
created_date: "2026-04-20 08:58"
labels: []
dependencies: []
references:
- "https://github.com/cloud8421/music_library/issues/79"
priority: medium
---
## Description
<!-- SECTION:DESCRIPTION:BEGIN -->
_GitHub: created 2026-02-17 · updated 2026-03-02 · closed 2026-03-02_
## Priority: Medium
## Description
Three workers use `Process.sleep` to rate-limit API calls:
| Worker | File | Sleep |
| ------------------------------ | ----------------------------------------------------------------- | ------ |
| `ArtistRefreshMusicBrainzData` | `lib/music_library/worker/artist_refresh_music_brainz_data.ex:8` | 500ms |
| `ArtistRefreshDiscogsData` | `lib/music_library/worker/artist_refresh_discogs_data.ex:8` | 1000ms |
| `RecordRefreshMusicBrainzData` | `lib/music_library/worker/record_refresh_music_brainz_data.ex:12` | 500ms |
This blocks the worker process during the sleep, preventing Oban from using it for other jobs.
## Expected behavior
Consider using Oban's `rate_limit` plugin or queue-level concurrency limits instead.
## Source
From technical debt audit (2026-02-17), item #6.
<!-- SECTION:DESCRIPTION:END -->