Skip to content
This repository was archived by the owner on Oct 4, 2023. It is now read-only.

[C-2068] Add downloadQueue worker cancellation#2797

Merged
dylanjeffers merged 2 commits into
mainfrom
amendel-offline-job-cancel
Feb 8, 2023
Merged

[C-2068] Add downloadQueue worker cancellation#2797
dylanjeffers merged 2 commits into
mainfrom
amendel-offline-job-cancel

Conversation

@dylanjeffers

@dylanjeffers dylanjeffers commented Feb 8, 2023

Copy link
Copy Markdown
Contributor

Description

  • Adds downloadQueue worker cancellation
  • Improves how a worker handles reachability changes, cancellation, and download errors in a super elegant and clear way. awesome work @amendelsohn for unlocking this!
  • Refactors a lot of the worker code for readability, and moves various queue related sagas together for organization
  • Fixed a few bugs with removing items from queue after trying out some crazy edge cases. The new setup is ultra resilient, so stoked!!

@dylanjeffers dylanjeffers requested review from a team and sliptype and removed request for a team February 8, 2023 02:19

@sliptype sliptype left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is so elegant! Love it

export function* downloadCollectionWorker(collectionId: CollectionId) {
yield* put(startDownload({ type: 'collection', id: collectionId }))

const { downloadCollection, unreachable, cancel } = yield* race({

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔥

!collection ||
collection.is_delete ||
(collection.is_private && collection.playlist_owner_id !== currentUserId)
) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we are setting the status as error here won't it get re enqueued?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

its a bit unclear, but "errorDownload" action removes item from queue, so we should be good by next time we request

@dylanjeffers dylanjeffers merged commit a9a135a into main Feb 8, 2023
@dylanjeffers dylanjeffers deleted the amendel-offline-job-cancel branch February 8, 2023 03:12
dylanjeffers added a commit that referenced this pull request Feb 8, 2023
Co-authored-by: amendelsohn <andrew.j.mendelsohn@gmail.com>
audius-infra pushed a commit that referenced this pull request Feb 11, 2023
[3cbe169] [C-2070] show unsave drawer on all unfavorite buttons (#2823) Andrew Mendelsohn
[7de990a] [C-2040] Improve duration counter accuracy/performance (#2816) Dylan Jeffers
[e975303] [C-2065] Only show collection download switch if favorited (#2821) Sebastian Klingler
[8b02196] [C-2031] Fix confirmation drawer flashes (#2817) Dylan Jeffers
[6d9df4a] [C-2067] Add 'play-count' queue (#2814) Andrew Mendelsohn
[960de2c] Don't download on save if all favorites toggle off (#2815) Andrew Mendelsohn
[5310d81] Fix onPressRail animation error (#2813) Dylan Jeffers
[921e5eb] [C-2090] Reduce file reads on play (#2812) Sebastian Klingler
[a77f53c] Remove clear offline downloads button (#2811) Dylan Jeffers
[a2815e6] [C-2038] Fix unresponsive reactions (#2808) Dylan Jeffers
[a18afa2] [C-2058] prevent restart loop (#2810) Sebastian Klingler
[3478660] [C-1984] Don't use nativeDriver for slider and tracking bar anims (#2807) Sebastian Klingler
[3868712] [C-2083] Add offline sync to queue (#2803) Dylan Jeffers
[afac00a] [C-2080] Update value change logic for download toggles for favorites and collection switches (#2805) Kyle Shanks
[fb32d69] Fix audio tx modal where metadata is null (#2793) Reed
[62108a3] Update sdk to v1.0.45 (#2806) Reed
[d52491f] [C-2039] Fix search query persist (#2804) Dylan Jeffers
[aee4d8e] [C-2056] Fix lineup scrolling (#2802) Sebastian Klingler
[e776860] [C-2072] Add stale collection logic (#2801) Kyle Shanks
[a701c8d] [C-1975] Fix safari stream mp3 (#2800) Raymond Jacobson
[7e83831] Update challenges copy (#2799) Reed
[092bab6] Add script to help with linking sdk (#2798) Raymond Jacobson
[6b4f7a1] [PAY-898] Design fixes for NavMenuPopup (#2787) Marcus Pasell
[11f57c2] Remove identity artist pick path (#2781) Michelle Brier
[a9a135a] [C-2068] Add downloadQueue worker cancellation (#2797) Dylan Jeffers
[316b91f] Decode artist pick IDs and fix artist pick reads from discovery (#2795) Michelle Brier
[1dcc33a] [C-2079] Fix mobile sign up analytics (#2791) Sebastian Klingler
[e2b95ac] Add redownload logic for rehydration and stale tracks (#2790) Kyle Shanks
[c4080b4] [C-2066] Refactor offline-mode to use redux-persist (#2788) Dylan Jeffers
[4bf7c22] [PAY-891] Handle remix and availability settings on mobile (#2765) Saliou Diallo
[6f4dc13] Fix TikTok association (#2786) Sebastian Klingler
[ccee882] [C-2011] move whole tracks out of offline slice (#2784) Andrew Mendelsohn
[fa9ef86] Default offline mode off (#2785) Andrew Mendelsohn
[0d4692e] C-2041 Fix collection lineup not loading when library is only partially downloaded (#2782) nicoback2
[1159bb7] Fix remix (#2783) Saliou Diallo
[c2be8e4] Improve styling of TrackList on Favorites Screen (#2778) Sebastian Klingler
[dc17f41] Fix download progress numerator going down in the middle of downloading C-2037 (#2777) nicoback2
@AudiusProject AudiusProject deleted a comment from linear Bot Sep 11, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants