mirror of
https://github.com/plexguide/Huntarr.io.git
synced 2026-04-19 21:06:55 -04:00
382 lines
20 KiB
HTML
382 lines
20 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>Scheduling - Huntarr Docs</title>
|
||
<link rel="icon" type="image/png" href="../images/huntarr-logo.png">
|
||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
|
||
<link rel="stylesheet" href="../css/main.css">
|
||
</head>
|
||
|
||
<body>
|
||
|
||
<!-- Mobile Topbar -->
|
||
<div class="docs-mobile-topbar">
|
||
<button class="mob-hamburger" aria-label="Open navigation"><span></span><span></span><span></span></button>
|
||
<img src="../images/huntarr-logo.png" alt="Huntarr" class="mob-logo">
|
||
<span class="mob-title">Documentation</span>
|
||
</div>
|
||
|
||
<!-- Sidebar Backdrop (mobile) -->
|
||
<div class="docs-sidebar-backdrop"></div>
|
||
|
||
<div class="docs-layout">
|
||
|
||
<!-- ===== SIDEBAR ===== -->
|
||
<nav class="docs-sidebar" aria-label="Documentation navigation">
|
||
<a href="../index.html" class="sidebar-brand">
|
||
<img src="../images/huntarr-logo.png" alt="Huntarr">
|
||
<span>Huntarr</span>
|
||
</a>
|
||
|
||
<div class="sidebar-scroll">
|
||
|
||
<!-- Getting Started -->
|
||
<div class="nav-group">
|
||
<div class="nav-group-title">Getting Started</div>
|
||
<div class="nav-group-items">
|
||
<a href="../index.html"><i class="fas fa-home"></i> Welcome</a>
|
||
<a href="../getting-started/installation.html"><i class="fas fa-download"></i> Installation</a>
|
||
<a href="../getting-started/setup-wizard.html"><i class="fas fa-magic"></i> Setup Wizard</a>
|
||
<a href="../getting-started/first-steps.html"><i class="fas fa-rocket"></i> First Steps</a>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Apps -->
|
||
<div class="nav-group">
|
||
<div class="nav-group-title">Apps</div>
|
||
<div class="nav-group-items">
|
||
<a href="../apps/index.html"><i class="fas fa-plug"></i> 3rd Party Apps</a>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Movie Hunt -->
|
||
<div class="nav-group">
|
||
<div class="nav-group-title">Media Hunt</div>
|
||
<div class="nav-group-items">
|
||
<a href="../movie-hunt/index.html"><i class="fas fa-clapperboard"></i> Overview <span
|
||
class="nav-badge nav-badge-beta">Beta</span></a>
|
||
<a href="../movie-hunt/media-collection.html"><i class="fas fa-photo-film"></i> Media
|
||
Collection</a>
|
||
<a href="../movie-hunt/indexers-clients.html"><i class="fas fa-server"></i> Indexers &
|
||
Clients</a>
|
||
<a href="../movie-hunt/profiles.html"><i class="fas fa-sliders"></i> Profiles</a>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- NZB Hunt -->
|
||
<div class="nav-group">
|
||
<div class="nav-group-title">NZB Hunt</div>
|
||
<div class="nav-group-items">
|
||
<a href="../nzb-hunt/index.html"><i class="fas fa-newspaper"></i> Overview <span
|
||
class="nav-badge nav-badge-beta">Beta</span></a>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Requestarr -->
|
||
<div class="nav-group">
|
||
<div class="nav-group-title">Requests</div>
|
||
<div class="nav-group-items">
|
||
<a href="../requestarr/index.html"><i class="fas fa-hand-paper"></i> Requests</a>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Settings -->
|
||
<div class="nav-group">
|
||
<div class="nav-group-title">Settings</div>
|
||
<div class="nav-group-items">
|
||
<a href="index.html"><i class="fas fa-cog"></i> Main Settings</a>
|
||
<a href="scheduling.html" class="active"><i class="fas fa-clock"></i> Scheduling</a>
|
||
<a href="notifications.html"><i class="fas fa-bell"></i> Notifications</a>
|
||
<a href="backup-restore.html"><i class="fas fa-database"></i> Backup & Restore</a>
|
||
<a href="log-settings.html"><i class="fas fa-file-alt"></i> Log Settings</a>
|
||
<a href="user-account.html"><i class="fas fa-user-shield"></i> User Account</a>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- System -->
|
||
<div class="nav-group">
|
||
<div class="nav-group-title">System</div>
|
||
<div class="nav-group-items">
|
||
<a href="../system/hunt-manager.html"><i class="fas fa-tasks"></i> Hunt Manager</a>
|
||
<a href="../system/logs.html"><i class="fas fa-scroll"></i> Logs</a>
|
||
<a href="../system/api.html"><i class="fas fa-code"></i> API Reference</a>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Help -->
|
||
<div class="nav-group">
|
||
<div class="nav-group-title">Help</div>
|
||
<div class="nav-group-items">
|
||
<a href="../help/faq.html"><i class="fas fa-question-circle"></i> FAQ</a>
|
||
<a href="../help/community.html"><i class="fas fa-users"></i> Community</a>
|
||
<a href="https://plexguide.github.io/Huntarr.io/donate.html"><i class="fas fa-heart"></i>
|
||
Donate</a>
|
||
</div>
|
||
</div>
|
||
|
||
</div><!-- /sidebar-scroll -->
|
||
|
||
<div class="sidebar-footer">
|
||
<a href="https://discord.com/invite/PGJJjR5Cww" target="_blank" class="sf-discord" title="Discord"><i
|
||
class="fab fa-discord"></i></a>
|
||
<a href="https://www.reddit.com/r/huntarr/" target="_blank" class="sf-reddit" title="Reddit"><i
|
||
class="fab fa-reddit-alien"></i></a>
|
||
<a href="https://github.com/plexguide/Huntarr.io" target="_blank" class="sf-github" title="GitHub"><i
|
||
class="fab fa-github"></i></a>
|
||
<a href="https://plexguide.github.io/Huntarr.io/donate.html" class="sf-heart" title="Donate"><i
|
||
class="fas fa-heart"></i></a>
|
||
</div>
|
||
</nav>
|
||
|
||
<!-- ===== MAIN ===== -->
|
||
<main class="docs-main">
|
||
<div class="docs-content">
|
||
|
||
<h1>Scheduling</h1>
|
||
<p class="page-subtitle">Control when and how often Huntarr hunts for missing and below-cutoff media
|
||
across all your instances.</p>
|
||
|
||
<h2>Overview</h2>
|
||
<p>Scheduling is the heart of Huntarr. Each supported app type (Sonarr, Radarr, Lidarr, Readarr,
|
||
Whisparr, and the built-in Movie Hunt) has its own independent schedule. You can configure:</p>
|
||
<ul>
|
||
<li><strong>How often</strong> each app hunts (interval in minutes)</li>
|
||
<li><strong>How many items</strong> it searches per cycle (missing cap and upgrade cap)</li>
|
||
<li><strong>Per-instance or global</strong> schedules — run one schedule for all instances of an
|
||
app, or fine-tune each instance separately</li>
|
||
</ul>
|
||
|
||
<h2>How a Hunt Cycle Works</h2>
|
||
<p>Understanding what happens during each cycle helps you set good values:</p>
|
||
<ol>
|
||
<li><strong>Timer fires</strong> — When the configured interval elapses, Huntarr begins a hunt cycle
|
||
for that app type</li>
|
||
<li><strong>Library scan</strong> — Huntarr queries the app's API for all monitored items and
|
||
identifies which are missing or below your quality cutoff</li>
|
||
<li><strong>Queue check</strong> — Before triggering searches, Huntarr checks the app's download
|
||
queue. If the queue already has active downloads, it may skip or reduce the batch to avoid
|
||
overloading your download client</li>
|
||
<li><strong>Batch search</strong> — Huntarr triggers searches for up to the configured cap of items.
|
||
It picks items randomly or by priority (depending on app type) to spread searches across your
|
||
library over time</li>
|
||
<li><strong>Wait</strong> — The scheduler resets and waits for the next interval</li>
|
||
</ol>
|
||
|
||
<div class="alert alert-info">
|
||
<strong><i class="fas fa-info-circle"></i> Missing vs. Upgrade hunts</strong>
|
||
<p><strong>Missing hunt</strong> searches for content that isn't downloaded at all (e.g., a movie
|
||
you added but never found). <strong>Upgrade hunt</strong> searches for content you already have
|
||
but at a lower quality than your cutoff (e.g., you have 720p but your profile wants 1080p). Both
|
||
run in the same cycle but use separate caps.</p>
|
||
</div>
|
||
|
||
<h2>Creating a Schedule</h2>
|
||
<p>Navigate to <strong>Settings → Scheduling</strong> from the sidebar:</p>
|
||
<ol>
|
||
<li>Select an <strong>App Type</strong> from the dropdown (Sonarr, Radarr, Lidarr, Readarr,
|
||
Whisparr, or Movie Hunt)</li>
|
||
<li>Choose a <strong>specific instance</strong> or select <strong>Global</strong> to apply the
|
||
schedule to all instances of that type</li>
|
||
<li>Set the <strong>Interval</strong> — how many minutes between each hunt cycle</li>
|
||
<li>Set the <strong>Missing Cap</strong> — maximum missing items to search per cycle</li>
|
||
<li>Set the <strong>Upgrade Cap</strong> — maximum items to search for quality upgrades per cycle
|
||
</li>
|
||
<li>Toggle <strong>Enabled</strong> on or off</li>
|
||
<li>Click <strong>Save</strong></li>
|
||
</ol>
|
||
|
||
<h2>Schedule Settings Reference</h2>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Setting</th>
|
||
<th>Description</th>
|
||
<th>Guidance</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><strong>App Type</strong></td>
|
||
<td>Which *arr app this schedule controls</td>
|
||
<td>One schedule per app type (or per instance)</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>Instance</strong></td>
|
||
<td>Specific instance or "Global" for all</td>
|
||
<td>Use per-instance schedules to stagger load across 1080p and 4K instances</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>Interval</strong></td>
|
||
<td>Minutes between hunt cycles</td>
|
||
<td>15–60 min recommended. Under 15 min risks indexer rate limits</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>Missing Cap</strong></td>
|
||
<td>Max missing items to search per cycle</td>
|
||
<td>Start with 3–5. Higher values send more API calls to indexers per cycle</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>Upgrade Cap</strong></td>
|
||
<td>Max items to search for quality upgrades per cycle</td>
|
||
<td>Start with 2–3. Upgrade searches are less urgent than missing-content searches</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>Enabled</strong></td>
|
||
<td>Toggle this schedule on/off</td>
|
||
<td>Disable temporarily without deleting the schedule</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<h2>Recommended Starting Settings</h2>
|
||
<p>These defaults work well for most users. Adjust after observing your system for 24–48 hours:</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>App</th>
|
||
<th>Interval</th>
|
||
<th>Missing Cap</th>
|
||
<th>Upgrade Cap</th>
|
||
<th>Notes</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><strong>Sonarr</strong></td>
|
||
<td>30 min</td>
|
||
<td>5</td>
|
||
<td>3</td>
|
||
<td>Episode-level searches are fast. Safe to search more frequently</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>Radarr</strong></td>
|
||
<td>60 min</td>
|
||
<td>3</td>
|
||
<td>2</td>
|
||
<td>Movies generate more indexer queries per search than episodes</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>Lidarr</strong></td>
|
||
<td>60 min</td>
|
||
<td>3</td>
|
||
<td>2</td>
|
||
<td>Music indexers are often slower. Keep caps low to avoid timeouts</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>Readarr</strong></td>
|
||
<td>120 min</td>
|
||
<td>2</td>
|
||
<td>1</td>
|
||
<td>Book indexers are limited. Very low caps recommended</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>Whisparr</strong></td>
|
||
<td>60 min</td>
|
||
<td>3</td>
|
||
<td>2</td>
|
||
<td>Similar to Radarr in terms of search load</td>
|
||
</tr>
|
||
<tr>
|
||
<td><strong>Movie Hunt</strong></td>
|
||
<td>30 min</td>
|
||
<td>5</td>
|
||
<td>3</td>
|
||
<td>Uses Huntarr's own indexers (Index Master), so won't conflict with *arr indexer limits
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
|
||
<h2>Multiple Instances Strategy</h2>
|
||
<p>If you run multiple instances of the same app (e.g., a 1080p Sonarr and a 4K Sonarr), stagger their
|
||
schedules to avoid hammering your indexers simultaneously:</p>
|
||
<ul>
|
||
<li><strong>Offset intervals</strong> — Set Instance A to 30 min and Instance B to 30 min, but
|
||
they'll naturally offset because they start at different times</li>
|
||
<li><strong>Different caps</strong> — Give your primary (1080p) instance a higher missing cap (5)
|
||
and your 4K instance a lower cap (2), since 4K content is harder to find anyway</li>
|
||
<li><strong>Use per-instance schedules</strong> — Avoid "Global" if your instances have different
|
||
purposes or indexer configurations</li>
|
||
</ul>
|
||
|
||
<h2>Queue-Aware Pausing</h2>
|
||
<p>Huntarr automatically checks your download client's queue before triggering searches. If your queue
|
||
is already full or has many active downloads, Huntarr will:</p>
|
||
<ul>
|
||
<li>Reduce the batch size (search fewer items than the configured cap)</li>
|
||
<li>Skip the cycle entirely if the queue exceeds the threshold</li>
|
||
<li>Retry on the next scheduled interval</li>
|
||
</ul>
|
||
<p>This prevents your download client from becoming overloaded and ensures existing downloads complete
|
||
before new ones are added.</p>
|
||
|
||
<h2>Monitoring Schedule Execution</h2>
|
||
<p>Check if your schedules are working properly:</p>
|
||
<ul>
|
||
<li><strong>Hunt Manager</strong> (System → Hunt Manager) — Shows the current status of each
|
||
schedule, when it last ran, and what it found</li>
|
||
<li><strong>Logs</strong> (System → Logs) — Detailed log entries for each hunt cycle, including how
|
||
many items were searched, found, and grabbed</li>
|
||
<li><strong>Dashboard</strong> — The home page shows per-app status cards with recent activity</li>
|
||
</ul>
|
||
|
||
<h2>Troubleshooting</h2>
|
||
|
||
<h3>Huntarr isn't finding anything</h3>
|
||
<ul>
|
||
<li>Check that your *arr app has <strong>monitored</strong> content that is actually missing.
|
||
Unmonitored items won't be searched</li>
|
||
<li>Verify your indexers are working in the *arr app itself — try a manual search</li>
|
||
<li>Check the Logs for errors like API timeouts or authentication failures</li>
|
||
</ul>
|
||
|
||
<h3>Getting rate-limited by indexers</h3>
|
||
<ul>
|
||
<li>Increase your interval (try 60 minutes instead of 15)</li>
|
||
<li>Decrease your caps (try 2 instead of 10)</li>
|
||
<li>If you use the same indexers across multiple *arr apps, their combined search volume counts
|
||
toward the indexer's rate limit</li>
|
||
</ul>
|
||
|
||
<h3>Schedules seem stuck</h3>
|
||
<ul>
|
||
<li>Check the Hunt Manager — a schedule may be "waiting" because the download queue is full</li>
|
||
<li>Restart the Huntarr container if schedules appear frozen</li>
|
||
<li>Verify the app instance is still reachable (check the Apps page for connection status)</li>
|
||
</ul>
|
||
|
||
<div class="alert alert-warning">
|
||
<strong><i class="fas fa-exclamation-triangle"></i> Indexer rate limits</strong>
|
||
<p>Most Usenet indexers allow 50–100 API calls per day on free plans. Each search Huntarr triggers
|
||
uses 1–3 API calls depending on the app type. With a missing cap of 5 and 30-minute intervals,
|
||
that's roughly 240 searches/day — well within paid indexer limits but potentially exceeding
|
||
free-tier limits. Monitor your indexer usage if you're on a free plan.</p>
|
||
</div>
|
||
|
||
<div class="alert alert-success">
|
||
<strong><i class="fas fa-lightbulb"></i> Pro tip</strong>
|
||
<p>Your library isn't going anywhere. There's no rush. Start conservative (60 min, cap of 3) and let
|
||
Huntarr run for a week. It will methodically work through your entire library. Aggressive
|
||
settings just risk getting rate-limited without actually finding content faster, since the
|
||
bottleneck is usually the indexer, not Huntarr.</p>
|
||
</div>
|
||
|
||
</div><!-- /docs-content -->
|
||
|
||
<footer class="docs-footer">
|
||
<p>Huntarr is open source. <a href="https://github.com/plexguide/Huntarr.io" target="_blank">GitHub</a>
|
||
· <a href="https://discord.com/invite/PGJJjR5Cww" target="_blank">Discord</a> · <a
|
||
href="https://www.reddit.com/r/huntarr/" target="_blank">Reddit</a></p>
|
||
</footer>
|
||
</main>
|
||
|
||
</div><!-- /docs-layout -->
|
||
|
||
<button class="back-to-top" aria-label="Back to top"><i class="fas fa-arrow-up"></i></button>
|
||
<script src="../js/main.js"></script>
|
||
</body>
|
||
|
||
</html> |