@@ -279,6 +279,7 @@ class App {
279
279
batch.execute()
280
280
rf1?.toCompletableFuture()?.thenApply { println (" rf1 fastPutAsync result: $it " ) }
281
281
rf2?.toCompletableFuture()?.thenApply { println (" rf2 putAsync result: $it " ) }
282
+ // @TODO: dbl check
282
283
}
283
284
284
285
private fun multiLock (redissonClient : RedissonClient ) {
@@ -302,22 +303,23 @@ class App {
302
303
private suspend fun coroutinesLock (redissonClient : RedissonClient , range : IntProgression = (1 until 5)) {
303
304
printHelper(" coroutinesLock" )
304
305
val delayTime: Long = 1000L
305
-
306
+ // @TODO: hier weiter
307
+ val redissonReactive: RedissonReactiveClient = redissonClient.reactive()
306
308
val scope = CoroutineScope (Dispatchers .IO + SupervisorJob ())
307
309
range.map { entry -> // @TODO: with v1.9 use range until:
308
310
// https://www.lotharschulz.info/2022/10/03/setup-new-kotlin-range-operator-rangeuntil/
309
311
// https://github.com/lotharschulz/redis_kotlin/issues/19
310
312
scope.launch(CoroutineIdentifier (identifier = entry.toLong())) {
311
- val lock = redissonClient .getLock(" l$entry " )
313
+ val lock = redissonReactive .getLock(" l$entry " )
312
314
val id: Long? = currentCoroutineContext()[CoroutineIdentifier .CoroutineKey ]?.identifier
313
315
if (null != id) {
314
- lock.lockAsync (id).toCompletableFuture().join( )
316
+ lock.lock (id)
315
317
try {
316
- println (" lock acquired" )
318
+ println (" lock(id: $id ) acquired" )
317
319
delay(delayTime)
318
320
} finally {
319
- lock.unlockAsync().toCompletableFuture().join( )
320
- println (" lock released" )
321
+ lock.unlock(id )
322
+ println (" lock(id: $id ) released" )
321
323
}
322
324
}
323
325
}
@@ -368,28 +370,28 @@ class App {
368
370
fun doRedisStuff (): Boolean {
369
371
return when (val redisson = redissonClient()) {
370
372
is RClient .Success -> {
371
- // atomicLong(redisson.redissonClient, 3L)
372
- // atomicLongAsync(redisson.redissonClient, 3L)
373
- // atomicLongReactive(redisson.redissonClient, 3L)
374
- // atomicLongRXJava3(redisson.redissonClient, 3L)
375
- // Thread.sleep(1000) // wait for 1 second to complete RX operations
376
- // runBlocking {
377
- // atomicLongCoroutines(redisson.redissonClient)
378
- // }
379
- // bucket(redisson.redissonClient, "foo", "bar") // buckets
380
- // `object`(redisson.redissonClient, 100, 10, "some author")
381
- // topic(redisson.redissonClient, "new message")
382
- // keys(redisson.redissonClient, "test1", "test2")
383
- // collections(redisson.redissonClient, "321", "value")
384
- // set(redisson.redissonClient, 42, 88, "icke")
385
- // list(redisson.redissonClient, 24, 33, "you")
386
- // scripting(redisson.redissonClient, "foo-bar")
387
- // pipeline(redisson.redissonClient, 1, 2, 3, 4)
388
- // multiLock(redisson.redissonClient)
373
+ atomicLong(redisson.redissonClient, 3L )
374
+ atomicLongAsync(redisson.redissonClient, 3L )
375
+ atomicLongReactive(redisson.redissonClient, 3L )
376
+ atomicLongRXJava3(redisson.redissonClient, 3L )
377
+ Thread .sleep(1000 ) // wait for 1 second to complete RX operations
378
+ runBlocking {
379
+ atomicLongCoroutines(redisson.redissonClient)
380
+ }
381
+ bucket(redisson.redissonClient, " foo" , " bar" ) // buckets
382
+ `object `(redisson.redissonClient, 100 , 10 , " some author" )
383
+ topic(redisson.redissonClient, " new message" )
384
+ keys(redisson.redissonClient, " test1" , " test2" )
385
+ collections(redisson.redissonClient, " 321" , " value" )
386
+ set(redisson.redissonClient, 42 , 88 , " icke" )
387
+ list(redisson.redissonClient, 24 , 33 , " you" )
388
+ scripting(redisson.redissonClient, " foo-bar" )
389
+ pipeline(redisson.redissonClient, 1 , 2 , 3 , 4 )
390
+ multiLock(redisson.redissonClient)
389
391
runBlocking {
390
392
coroutinesLock(redisson.redissonClient)
391
393
}
392
- // mapCache(redisson.redissonClient, "cache", "cacheKey", "cache test value", 1000L)
394
+ mapCache(redisson.redissonClient, " cache" , " cacheKey" , " cache test value" , 1000L )
393
395
redisson.redissonClient.shutdown()
394
396
true
395
397
}
0 commit comments