Nexus-Mods / NexusMods.App

Home of the development of the Nexus Mods App
https://nexus-mods.github.io/NexusMods.App/
GNU General Public License v3.0
924 stars 45 forks source link

Road to Loadout Items #1763

Open erri120 opened 2 months ago

erri120 commented 2 months ago

Loadout Items

Library

Downloads

Jobs

Sewer56 commented 2 months ago

Replace AdvancedHttpDownloader and SimpleHttpDownloader with an implementation that users Downloader for simplicity.

I have a question with respect to this. I actually suggested using Downloader library all the way back in I think February-ish 2023, during standup.

I don't quite remember the exact reason why we didn't go with that. Original Ticket:

I remember two of the talking points for running a custom solution were:

In any case, I don't remember the exact reasons, but maybe @halgari remembers.

erri120 commented 2 months ago

Downloader AFAIK does not periodically save state, so killing the App process would lose the download.

State would be handled by the job. Downloads will be persistent jobs, so we wouldn't lose the download on crash.

So say you're a premium user and you have access to 5+ servers. If one server dies, the App would pick up downloading that same chunk from another server, rather than restarting the whole download.

The library supports mirrors, haven't tested how well this works:

https://github.com/bezzad/Downloader/blob/10bff5e1ec0412a7292fdd37e5e557d146d2e21a/src/Downloader/IDownloadService.cs#L77-L84

Sewer56 commented 2 months ago

Then at this point I'm not even sure why we've never used it. Unless those are more recent features. I wasn't making the call on that.