mirror of
https://github.com/InsanusMokrassar/MicroUtils.git
synced 2025-09-16 05:52:22 +00:00
update dependencies and make a lot of fixes in repos and smart lockers/semaphors
This commit is contained in:
@@ -61,18 +61,28 @@ open class WriteCRUDCacheRepo<ObjectType, IdType, InputValueType>(
|
||||
override val deletedObjectsIdsFlow: Flow<IdType> by parentRepo::deletedObjectsIdsFlow
|
||||
|
||||
val createdObjectsFlowJob = parentRepo.newObjectsFlow.onEach {
|
||||
locker.withWriteLock { kvCache.set(idGetter(it), it) }
|
||||
locker.withWriteLock {
|
||||
kvCache.set(idGetter(it), it)
|
||||
}
|
||||
}.launchIn(scope)
|
||||
|
||||
val updatedObjectsFlowJob = parentRepo.updatedObjectsFlow.onEach {
|
||||
locker.withWriteLock { kvCache.set(idGetter(it), it) }
|
||||
locker.withWriteLock {
|
||||
kvCache.set(idGetter(it), it)
|
||||
}
|
||||
}.launchIn(scope)
|
||||
|
||||
val deletedObjectsFlowJob = parentRepo.deletedObjectsIdsFlow.onEach {
|
||||
locker.withWriteLock { kvCache.unset(it) }
|
||||
locker.withWriteLock {
|
||||
kvCache.unset(it)
|
||||
}
|
||||
}.launchIn(scope)
|
||||
|
||||
override suspend fun deleteById(ids: List<IdType>) = parentRepo.deleteById(ids)
|
||||
override suspend fun deleteById(ids: List<IdType>) = parentRepo.deleteById(ids).also {
|
||||
locker.withWriteLock {
|
||||
kvCache.unset(ids)
|
||||
}
|
||||
}
|
||||
|
||||
override suspend fun update(values: List<UpdatedValuePair<IdType, InputValueType>>): List<ObjectType> {
|
||||
val updated = parentRepo.update(values)
|
||||
|
@@ -43,7 +43,7 @@ open class FullReadKeyValueCacheRepo<Key,Value>(
|
||||
protected open suspend fun actualizeAll() {
|
||||
locker.withWriteLock {
|
||||
kvCache.clear()
|
||||
kvCache.set(parentRepo.getAll { keys(it) }.toMap())
|
||||
kvCache.set(parentRepo.getAll())
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user