All Downloads are FREE. Search and download functionalities are using the official Maven repository.

devutility.external.redis.queue.stream.JedisPoolStreamQueueAcknowledger Maven / Gradle / Ivy

The newest version!
package devutility.external.redis.queue.stream;

import devutility.external.redis.com.QueueMode;
import devutility.external.redis.com.RedisQueueOption;
import devutility.external.redis.ext.DevJedis;
import devutility.external.redis.queue.Acknowledger;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.StreamEntryID;

/**
 * 
 * JedisPoolStreamQueueAcknowledger
 * 
 * @author: Aldwin Su
 * @version: 2020-04-01 15:47:25
 */
public class JedisPoolStreamQueueAcknowledger implements Acknowledger {
	/**
	 * JedisPool object.
	 */
	private JedisPool jedisPool;

	/**
	 * RedisQueueOption object.
	 */
	private RedisQueueOption redisQueueOption;

	/**
	 * Constructor
	 * @param jedisPool
	 */
	public JedisPoolStreamQueueAcknowledger(JedisPool jedisPool, final RedisQueueOption redisQueueOption) {
		this.jedisPool = jedisPool;
		this.redisQueueOption = redisQueueOption;
	}

	@Override
	public void ack(StreamEntryID streamEntryId) {
		try (Jedis jedis = jedisPool.getResource()) {
			if (QueueMode.P2P == redisQueueOption.getMode()) {
				@SuppressWarnings("resource")
				DevJedis devJedis = new DevJedis(jedis);
				devJedis.xack(redisQueueOption.getKey(), redisQueueOption.getGroupName(), streamEntryId);
			} else {
				jedis.xack(redisQueueOption.getKey(), redisQueueOption.getGroupName(), streamEntryId);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy