1.3 KiB
1.3 KiB
id, title, status, assignee, created_date, labels, dependencies, references, priority
| id | title | status | assignee | created_date | labels | dependencies | references | priority | |
|---|---|---|---|---|---|---|---|---|---|
| ML-95 | Process.sleep for rate limiting in Oban workers | Done | 2026-04-20 08:58 |
|
medium |
Description
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.