Commit f4120b1a authored by Mygod's avatar Mygod

Prevent enqueueing too many dup work

parent 9894d0e9
...@@ -31,15 +31,16 @@ class AclSyncer(context: Context, workerParams: WorkerParameters) : CoroutineWor ...@@ -31,15 +31,16 @@ class AclSyncer(context: Context, workerParams: WorkerParameters) : CoroutineWor
companion object { companion object {
private const val KEY_ROUTE = "route" private const val KEY_ROUTE = "route"
fun schedule(route: String) = WorkManager.getInstance().enqueue(OneTimeWorkRequestBuilder<AclSyncer>().run { fun schedule(route: String) = WorkManager.getInstance().enqueueUniqueWork(route, ExistingWorkPolicy.REPLACE,
setInputData(Data.Builder().putString(KEY_ROUTE, route).build()) OneTimeWorkRequestBuilder<AclSyncer>().run {
setConstraints(Constraints.Builder() setInputData(Data.Builder().putString(KEY_ROUTE, route).build())
.setRequiredNetworkType(NetworkType.UNMETERED) setConstraints(Constraints.Builder()
.setRequiresCharging(true) .setRequiredNetworkType(NetworkType.UNMETERED)
.build()) .setRequiresCharging(true)
setInitialDelay(10, TimeUnit.SECONDS) .build())
build() setInitialDelay(10, TimeUnit.SECONDS)
}) build()
})
} }
override val coroutineContext get() = Dispatchers.IO override val coroutineContext get() = Dispatchers.IO
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment