Quantcast
Channel: Active questions tagged redis+java - Stack Overflow
Viewing all articles
Browse latest Browse all 2204

Executing batch query with redis redisson client Hangs forever

$
0
0

I have an inventory list of Millions of records that I want to insert/merge in batches in Redis using Redisson Batch command.below is the code

public void upsertInventoryInBatches(final List<ItemInventory> itemInventory) throws ExecutionException, InterruptedException {    RBatch batch = redissonClient.createBatch(BatchOptions.defaults().responseTimeout(300, TimeUnit.SECONDS));    RMapAsync<String, ItemInventory> map = batch.getMap(IMSConstant.REDIS_INVENTORY_MAP);    try {        for (ItemInventory item : itemInventory) {            map.mergeAsync(item.getKey(), item, (existing, newValue) -> {                if (existing == null) {                    return newValue;                } else {                    if (existing.getQuantity() == newValue.getQuantity()&& existing.getMinMRP() == newValue.getMinMRP()) {                        return existing;                    }                    existing.setQuantity(item.getQuantity());                    existing.setMinMRP(item.getMinMRP());                    existing.setEarliestExpiryDate(item.getEarliestExpiryDate());                    existing.setVersion(item.getVersion());                    return existing;                }            });}    var res = batch.execute();  // Hangs with no result and no error    } catch (Exception e) {        System.out.println(e.getMessage());    }

thebatch.execute statement just hangs with no error and no output.Looking for guidance on what I am doing wrong.batch.getMap(IMSConstant.REDIS_INVENTORY_MAP).putAsync(item.getKey(), item) works fine but I want to merge the values. if its not possible with redisson, Is it possible via any redis java client?


Viewing all articles
Browse latest Browse all 2204

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>