Skip to content

Commit

Permalink
Do not start Downloaders for failed downloads
Browse files Browse the repository at this point in the history
In case there were failed chapter downloads in the queue the DownloadManager still created an Downloader and started it.
This Downloader would than immediately call "onComplete", since there is no available download, which then would refresh the Downloaders again which created an infinite loop until the failed download got removed from the queue
  • Loading branch information
schroda committed Jul 29, 2023
1 parent 0478657 commit f0fbddd
Showing 1 changed file with 7 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,9 @@ import org.jetbrains.exposed.sql.select
import org.jetbrains.exposed.sql.transactions.transaction
import suwayomi.tachidesk.graphql.subscriptions.downloadSubscriptionSource
import suwayomi.tachidesk.manga.impl.download.model.DownloadChapter
import suwayomi.tachidesk.manga.impl.download.model.DownloadState
import suwayomi.tachidesk.manga.impl.download.model.DownloadState.Downloading
import suwayomi.tachidesk.manga.impl.download.model.DownloadState.Error
import suwayomi.tachidesk.manga.impl.download.model.DownloadStatus
import suwayomi.tachidesk.manga.impl.download.model.Status
import suwayomi.tachidesk.manga.model.dataclass.ChapterDataClass
Expand Down Expand Up @@ -150,9 +152,12 @@ object DownloadManager {
scope.launch {
downloaderWatch.sample(1.seconds).collect {
val runningDownloaders = downloaders.values.filter { it.isActive }
logger.info { "Running: ${runningDownloaders.size}, Queued: ${downloadQueue.size}" }
val availableDownloads = downloadQueue.filter { it.state != Error }

logger.info { "Running: ${runningDownloaders.size}, Queued: ${downloadQueue.size}, Failed: ${downloadQueue.size - availableDownloads.size}" }

if (runningDownloaders.size < MAX_SOURCES_IN_PARAllEL) {
downloadQueue.asSequence()
availableDownloads.asSequence()
.map { it.manga.sourceId }
.distinct()
.minus(
Expand Down

0 comments on commit f0fbddd

Please sign in to comment.