Ebook scanning follow-ups: stale badge, Oban config keys, private cron API, duplicate scans #33

Open
opened 2026-10-18 17:10:56 +00:00 by jfro · 0 comments
Owner

Severity: low · from Nye's review of #17 @c7e0ec4 (non-blocking)

  • (a) A stale library still shows the Scanning badge until someone clicks Scan now. Reset scanning_status when scanning?/1 detects it stale.
  • (b) Use the new Oban service keys (lifeline: [rescue_after: ...], cron: [crontab: ...]) instead of the deprecated Oban.Plugins.* names.
  • (c) LibraryScheduler uses Oban.Cron.Expression, which is @moduledoc false (private API). Recheck it on Oban upgrades, or vendor a small cron parser.
  • (d) start_scan is check-then-insert, so the watcher and the scheduler in the same minute can queue two scans. That's harmless (ebook_scan concurrency 1), but unique: [keys: [:library_id], states: :incomplete] on ScanWorker would close it.
**Severity: low** · from Nye's review of #17 @c7e0ec4 (non-blocking) - (a) A stale library still shows the Scanning badge until someone clicks Scan now. Reset `scanning_status` when `scanning?/1` detects it stale. - (b) Use the new Oban service keys (`lifeline: [rescue_after: ...]`, `cron: [crontab: ...]`) instead of the deprecated `Oban.Plugins.*` names. - (c) `LibraryScheduler` uses `Oban.Cron.Expression`, which is `@moduledoc false` (private API). Recheck it on Oban upgrades, or vendor a small cron parser. - (d) `start_scan` is check-then-insert, so the watcher and the scheduler in the same minute can queue two scans. That's harmless (ebook_scan concurrency 1), but `unique: [keys: [:library_id], states: :incomplete]` on ScanWorker would close it.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jfro/fuzzy_catalog#33
No description provided.