Files
Huntarr.io/docs/features/scheduling.html

284 lines
16 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.io Documentation</title>
<link rel="stylesheet" href="../css/main.css">
<script src="../js/main.js" defer></script>
</head>
<body>
<div class="sidebar">
<div class="sidebar-logo">
<img src="../images/huntarr-logo.png" alt="Huntarr Logo">
<h2>Huntarr.io</h2>
</div>
<nav class="sidebar-nav">
<div class="sidebar-section">
<h3 class="sidebar-section-title">Getting Started</h3>
<ul>
<li><a href="../donate.html"><i class="fas fa-heart" style="color: #e91e63; font-size: 18px; width: 24px; height: 24px; margin-right: 8px; display: inline-flex; align-items: center; justify-content: center;"></i> Donate</a></li>
<li><a href="../getting-started/installation.html"><svg class="svg-icon" viewBox="0 0 24 24" fill="currentColor"><path d="M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z"></path></svg> Installation</a></li>
</ul>
</div>
<div class="sidebar-section">
<h3 class="sidebar-section-title">Core</h3>
<ul>
<li><a href="../index.html"><svg class="svg-icon" viewBox="0 0 24 24" fill="currentColor"><path d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"></path></svg> Home</a></li>
<li><a href="../apps/index.html"><svg class="svg-icon" viewBox="0 0 24 24" fill="currentColor"><path d="M4 8h4V4H4v4zm6 12h4v-4h-4v4zm-6 0h4v-4H4v4zm0-6h4v-4H4v4zm6 0h4v-4h-4v4zm6-10v4h4V4h-4zm-6 4h4V4h-4v4zm6 6h4v-4h-4v4zm0 6h4v-4h-4v4z"></path></svg> Apps</a></li>
<li><a href="../settings/settings.html"><svg class="svg-icon" viewBox="0 0 24 24" fill="currentColor"><path d="M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"></path></svg> Settings</a></li>
<li class="active"><a href="index.html"><i class="fas fa-star" style="width: 24px; height: 24px; margin-right: 8px; display: inline-flex; align-items: center; justify-content: center;"></i> Features</a></li>
<li><a href="../faq.html"><i class="fas fa-question-circle" style="width: 24px; height: 24px; margin-right: 8px; display: inline-flex; align-items: center; justify-content: center;"></i> FAQ</a></li>
</ul>
</div>
<div class="sidebar-section">
<h3 class="sidebar-section-title">Resources</h3>
<ul>
<li><a href="https://github.com/plexguide/Huntarr.io" target="_blank"><svg class="svg-icon" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"></path></svg> GitHub</a></li>
</ul>
</div>
</nav>
</div>
<div class="main-content">
<div class="container">
<h1>Scheduling in Huntarr.io</h1>
<div class="content-block">
<h2>Overview</h2>
<p>
Huntarr's scheduling system allows you to automate routine tasks for your media management applications on a recurring schedule.
Instead of manually triggering actions like searching for missing media or upgrading content quality, you can set up automated schedules
to handle these tasks at specific times and days.
</p>
</div>
<div class="content-block">
<h2>Key Features</h2>
<ul class="feature-list">
<li><strong>App-Specific Scheduling</strong> - Create schedules for specific apps (Sonarr, Radarr, Lidarr, Readarr, etc.)</li>
<li><strong>Flexible Time Options</strong> - Schedule tasks for specific times and days of the week</li>
<li><strong>Multiple Actions</strong> - Configure various actions like searching for missing content, upgrading content quality, etc.</li>
<li><strong>Persistent Storage</strong> - All schedules are stored on the server and persist across container restarts</li>
<li><strong>Execution History</strong> - Track when scheduled actions were last executed and their status</li>
</ul>
</div>
<div class="content-block">
<h2>How Scheduling Works</h2>
<p>
Huntarr's scheduling system runs in the background, checking every minute to see if any scheduled actions need to be executed.
When you configure a schedule, you specify:
</p>
<ul>
<li><strong>App Type</strong> - Which app this schedule applies to (global, Sonarr, Radarr, etc.)</li>
<li><strong>Action</strong> - What action to perform (search missing, upgrade quality, etc.)</li>
<li><strong>Time</strong> - When to run the action (specific hour and minute)</li>
<li><strong>Days</strong> - Which days of the week to run the action</li>
<li><strong>App Instance</strong> - For multi-instance setups, which instance to target</li>
</ul>
<p>
The scheduling engine validates the timing against the current system time and executes the appropriate action
when a schedule's criteria are met. All execution results are logged for monitoring.
</p>
</div>
<div class="content-block">
<h2>Creating a Schedule</h2>
<ol class="step-list">
<li>
<strong>Navigate to the Scheduling Page</strong>
<p>From the Huntarr dashboard, click on the "Scheduling" option in the sidebar navigation.</p>
</li>
<li>
<strong>Click "Add Schedule"</strong>
<p>At the top of the scheduling interface, click the "+ Add Schedule" button.</p>
</li>
<li>
<strong>Configure Your Schedule</strong>
<p>In the form that appears, set up your schedule with the following details:</p>
<ul>
<li><strong>App Type</strong>: Select the app this schedule applies to (Sonarr, Radarr, etc.)</li>
<li><strong>Action</strong>: Choose what action to perform</li>
<li><strong>Time</strong>: Set the hour and minute for execution</li>
<li><strong>Days</strong>: Select which days of the week this should run</li>
<li><strong>App Instance</strong>: For multi-instance setups, choose which instance to use</li>
<li><strong>Enabled</strong>: Toggle whether this schedule is active</li>
</ul>
</li>
<li>
<strong>Save Your Schedule</strong>
<p>Click "Save" to create the schedule. It will be stored in Huntarr's persistent storage.</p>
</li>
</ol>
</div>
<div class="content-block">
<h2>Schedule Data Structure</h2>
<p>
Huntarr stores schedule information in a JSON format. Each schedule includes:
</p>
<pre><code>{
"id": "unique-schedule-id",
"action": "search_missing",
"time": "13:30",
"days": ["monday", "wednesday", "friday"],
"app": "Main Sonarr",
"enabled": true,
"appType": "sonarr"
}</code></pre>
<p>These schedules are organized by app type in the storage system:</p>
<pre><code>{
"global": [ /* global schedules */ ],
"sonarr": [ /* sonarr-specific schedules */ ],
"radarr": [ /* radarr-specific schedules */ ],
"lidarr": [ /* lidarr-specific schedules */ ],
"readarr": [ /* readarr-specific schedules */ ],
"whisparr": [ /* whisparr-specific schedules */ ],
"eros": [ /* eros-specific schedules */ ]
}</code></pre>
</div>
<div class="content-block">
<h2>Available Actions</h2>
<p>Depending on the app type, different actions are available for scheduling:</p>
<table class="data-table">
<thead>
<tr>
<th>App</th>
<th>Actions</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>Sonarr</td>
<td>search_missing</td>
<td>Search for missing episodes</td>
</tr>
<tr>
<td>Sonarr</td>
<td>upgrade_cutoff</td>
<td>Upgrade episodes that haven't met quality cutoff</td>
</tr>
<tr>
<td>Radarr</td>
<td>search_missing</td>
<td>Search for missing movies</td>
</tr>
<tr>
<td>Radarr</td>
<td>upgrade_cutoff</td>
<td>Upgrade movies that haven't met quality cutoff</td>
</tr>
<tr>
<td>Lidarr</td>
<td>search_missing</td>
<td>Search for missing albums</td>
</tr>
<tr>
<td>Lidarr</td>
<td>upgrade_cutoff</td>
<td>Upgrade albums that haven't met quality cutoff</td>
</tr>
<tr>
<td>Readarr</td>
<td>search_missing</td>
<td>Search for missing books</td>
</tr>
<tr>
<td>Readarr</td>
<td>upgrade_cutoff</td>
<td>Upgrade books that haven't met quality cutoff</td>
</tr>
<tr>
<td>Global</td>
<td>refresh_cache</td>
<td>Refresh Huntarr's internal cache</td>
</tr>
</tbody>
</table>
</div>
<div class="content-block">
<h2>Managing Schedules</h2>
<h3>Editing a Schedule</h3>
<p>
To edit an existing schedule, click the edit icon (pencil) next to the schedule in the list.
This will open the schedule editor where you can modify any of the settings.
</p>
<h3>Enabling/Disabling Schedules</h3>
<p>
You can quickly enable or disable a schedule by toggling the switch in the "Enabled" column.
Disabled schedules remain in the system but won't be executed until enabled again.
</p>
<h3>Deleting a Schedule</h3>
<p>
To remove a schedule completely, click the delete icon (trash) next to the schedule.
You'll be asked to confirm before the schedule is permanently removed.
</p>
</div>
<div class="content-block">
<h2>Viewing Schedule History</h2>
<p>
The scheduling page includes a history section where you can see when schedules were last executed
and whether they were successful. This helps with troubleshooting and monitoring your automated tasks.
</p>
<p>
The history shows:
</p>
<ul>
<li>Timestamp of execution</li>
<li>Action performed</li>
<li>Target app</li>
<li>Status (success/failure)</li>
<li>Any error messages if applicable</li>
</ul>
</div>
<div class="content-block">
<h2>Best Practices</h2>
<ul>
<li><strong>Stagger Schedules</strong> - Avoid scheduling multiple resource-intensive tasks at the same time</li>
<li><strong>Consider Server Load</strong> - Schedule heavy operations during off-peak hours</li>
<li><strong>Monitor Performance</strong> - Check the history regularly to ensure schedules are executing properly</li>
<li><strong>Start Small</strong> - Begin with a few essential schedules before adding more complex automation</li>
</ul>
</div>
<div class="content-block">
<h2>Troubleshooting</h2>
<h3>Schedule Not Running</h3>
<ul>
<li>Verify the schedule is enabled</li>
<li>Check that the day and time settings are correct</li>
<li>Ensure the target app is properly configured and connected</li>
<li>Check the logs for any error messages</li>
</ul>
<h3>Schedule Running But Not Working</h3>
<ul>
<li>Verify the app API is accessible from Huntarr</li>
<li>Check if the action can be performed manually</li>
<li>Look for error messages in the schedule history</li>
<li>Ensure the app instance selected is correct</li>
</ul>
</div>
</div>
</div>
</body>
</html>