Fixed: Schedule refresh and process monitored download tasks at high priority

Fixes #1542
Fixes #1553
Fixes #1537
This commit is contained in:
Qstick
2023-01-14 17:34:26 -06:00
parent adb22868b6
commit 6199cb2999
7 changed files with 135 additions and 36 deletions
@@ -27,6 +27,8 @@ namespace Readarr.Api.V1.Commands
private readonly Debouncer _debouncer;
private readonly Dictionary<int, CommandResource> _pendingUpdates;
private readonly CommandPriorityComparer _commandPriorityComparer = new CommandPriorityComparer();
public CommandController(IManageCommandQueue commandQueueManager,
IBroadcastSignalRMessage signalRBroadcaster,
KnownTypes knownTypes)
@@ -35,10 +37,10 @@ namespace Readarr.Api.V1.Commands
_commandQueueManager = commandQueueManager;
_knownTypes = knownTypes;
PostValidator.RuleFor(c => c.Name).NotBlank();
_debouncer = new Debouncer(SendUpdates, TimeSpan.FromSeconds(0.1));
_pendingUpdates = new Dictionary<int, CommandResource>();
PostValidator.RuleFor(c => c.Name).NotBlank();
}
protected override CommandResource GetResourceById(int id)
@@ -72,7 +74,10 @@ namespace Readarr.Api.V1.Commands
[HttpGet]
public List<CommandResource> GetStartedCommands()
{
return _commandQueueManager.All().ToResource();
return _commandQueueManager.All()
.OrderBy(c => c.Status, _commandPriorityComparer)
.ThenByDescending(c => c.Priority)
.ToResource();
}
[RestDeleteById]