public void trimOwnersTasks(final TaskOwnerType type, final long numberOfTasks)
{
Jedis jedis = jedisPool.getResource();
Jedis jedisTx = jedisPool.getResource();
Transaction transaction = jedisTx.multi();
boolean discard = true;
try
{
Set<String> owners = jedis.smembers(ownerIndexKey(type));
for (String owner : owners)
{
for (String taskKey : jedis.lrange(owner, numberOfTasks, -1))
{
Task task = taskDao.find(taskKey, jedis);
delete(task, transaction);
}
}
transaction.exec();
discard = false;
}
finally
{
if (discard)
{
transaction.discard();
}
jedisPool.returnResource(jedisTx);
jedisPool.returnResource(jedis);
}