ArticleSynchronizer: shuffle order of background requests
authorDa Risk <da_risk@geekorum.com>
Sat, 21 Dec 2019 08:45:15 -0800
changeset 583 53a07c05c9a8
parent 582 999f47510c5d
child 584 8a679747c426
ArticleSynchronizer: shuffle order of background requests
app/src/main/java/com/geekorum/ttrss/sync/ArticleSynchronizer.kt
--- a/app/src/main/java/com/geekorum/ttrss/sync/ArticleSynchronizer.kt	Sat Dec 21 08:39:53 2019 -0800
+++ b/app/src/main/java/com/geekorum/ttrss/sync/ArticleSynchronizer.kt	Sat Dec 21 08:45:15 2019 -0800
@@ -150,7 +150,9 @@
                 .build()
 
         val tag = UUID.randomUUID().toString()
-        val jobRequests = databaseService.getFeeds().map { feed ->
+        val jobRequests = databaseService.getFeeds()
+            .shuffled()
+            .map { feed ->
             val inputData = CollectNewArticlesWorker.getInputData(account, feed.id)
             OneTimeWorkRequestBuilder<CollectNewArticlesWorker>()
                     .setConstraints(constraints)
@@ -176,18 +178,20 @@
 
         val tag = UUID.randomUUID().toString()
         val jobRequests = databaseService.getFeeds()
-                .filter {
-                    it.id == feedId || feedId == ApiService.ALL_ARTICLES_FEED_ID
-                }.map { feed ->
-                    val inputData = UpdateArticleStatusWorker.getInputData(
-                            account, feed.id, numberOfLatestArticlesToRefresh)
+            .filter {
+                it.id == feedId || feedId == ApiService.ALL_ARTICLES_FEED_ID
+            }
+            .shuffled()
+            .map { feed ->
+                val inputData = UpdateArticleStatusWorker.getInputData(
+                    account, feed.id, numberOfLatestArticlesToRefresh)
 
-                    OneTimeWorkRequestBuilder<UpdateArticleStatusWorker>()
-                            .setConstraints(constraints)
-                            .setInputData(inputData)
-                            .addTag(tag)
-                            .build()
-                }
+                OneTimeWorkRequestBuilder<UpdateArticleStatusWorker>()
+                    .setConstraints(constraints)
+                    .setInputData(inputData)
+                    .addTag(tag)
+                    .build()
+            }
         updateStatusJobsTag = tag
 
         workManager.enqueue(jobRequests).await()