org.redisson.api.RedissonClient.getListMultimap()方法的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(9.5k)|赞(0)|评价(0)|浏览(328)

本文整理了Java中org.redisson.api.RedissonClient.getListMultimap方法的一些代码示例,展示了RedissonClient.getListMultimap的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RedissonClient.getListMultimap方法的具体详情如下:
包路径:org.redisson.api.RedissonClient
类名称:RedissonClient
方法名:getListMultimap

RedissonClient.getListMultimap介绍

[英]Returns List based Multimap instance by name.
[中]按名称返回基于列表的多重映射实例。

代码示例

代码示例来源:origin: redisson/redisson

@Override
public void emit(K key, V value) {
  try {
    ByteBuf encodedKey = codec.getValueEncoder().encode(key);
    long hash = Hash.hash64(encodedKey);
    encodedKey.release();
    int part = (int) Math.abs(hash % parts);
    String partName = name + ":" + part;
    
    RListMultimap<K, V> multimap = client.getListMultimap(partName, codec);
    multimap.put(key, value);
    if (timeout > 0 && !expirationsBitSet.get(part)) {
      multimap.expire(timeout, TimeUnit.MILLISECONDS);
      expirationsBitSet.set(part);
    }
  } catch (IOException e) {
    throw new IllegalArgumentException(e);
  }
}

代码示例来源:origin: redisson/redisson

@Override
public void emit(K key, V value) {
  try {
    ByteBuf encodedKey = codec.getValueEncoder().encode(key);
    long hash = Hash.hash64(encodedKey);
    encodedKey.release();
    int part = (int) Math.abs(hash % parts);
    String partName = name + ":" + part;
    
    RListMultimap<K, V> multimap = client.getListMultimap(partName, codec);
    multimap.put(key, value);
    if (timeout > 0 && !expirationsBitSet.get(part)) {
      multimap.expire(timeout, TimeUnit.MILLISECONDS);
      expirationsBitSet.set(part);
    }
  } catch (IOException e) {
    throw new IllegalArgumentException(e);
  }
}

代码示例来源:origin: redisson/redisson

@Override
public void run() {
  try {
    this.codec = (Codec) codecClass.getConstructor().newInstance();
  } catch (Exception e) {
    throw new IllegalArgumentException(e);
  }
  
  Injector.inject(reducer, redisson);
  
  RMap<KOut, VOut> map = redisson.getMap(resultMapName);
  RListMultimap<KOut, VOut> multimap = redisson.getListMultimap(name, codec);
  for (KOut key : multimap.keySet()) {
    if (Thread.currentThread().isInterrupted()) {
      break;
    }
    List<VOut> values = multimap.get(key);
    VOut out = reducer.reduce(key, values.iterator());
    map.put(key, out);
  }
  if (timeout > 0) {
    map.expire(timeout, TimeUnit.MILLISECONDS);
  }
  multimap.delete();
}

代码示例来源:origin: redisson/redisson

@Override
public void run() {
  try {
    this.codec = (Codec) codecClass.getConstructor().newInstance();
  } catch (Exception e) {
    throw new IllegalArgumentException(e);
  }
  
  Injector.inject(reducer, redisson);
  
  RMap<KOut, VOut> map = redisson.getMap(resultMapName);
  RListMultimap<KOut, VOut> multimap = redisson.getListMultimap(name, codec);
  for (KOut key : multimap.keySet()) {
    if (Thread.currentThread().isInterrupted()) {
      break;
    }
    List<VOut> values = multimap.get(key);
    VOut out = reducer.reduce(key, values.iterator());
    map.put(key, out);
  }
  if (timeout > 0) {
    map.expire(timeout, TimeUnit.MILLISECONDS);
  }
  multimap.delete();
}

代码示例来源:origin: justlive1/earth-frost

@Override
 public void removeJobScripts(String jobId) {
  redissonClient.<String, JobScript>getListMultimap(JobConfig.JOB_INFO_SCRIPT).removeAll(jobId);
 }
}

代码示例来源:origin: justlive1/earth-frost

@Override
public List<JobScript> queryJobScripts(String jobId) {
 return redissonClient.<String, JobScript>getListMultimap(JobConfig.JOB_INFO_SCRIPT)
   .getAll(jobId);
}

代码示例来源:origin: justlive1/earth-frost

@Override
public void addJobRecordStatus(JobRecordStatus recordStatus) {
 RListMultimap<String, JobRecordStatus> listMultimap = redissonClient
   .getListMultimap(JobConfig.RECORD_STATUS);
 listMultimap.put(recordStatus.getLoggerId(), recordStatus);
}

代码示例来源:origin: justlive1/earth-frost

@Override
public String bindLog(String jobId) {
 String id = UUID.randomUUID().toString();
 redissonClient.<String, String>getMap(JobConfig.LOG_BIND).put(id, jobId);
 redissonClient.<String, String>getListMultimap(JobConfig.LOG_REL).put(jobId, id);
 return id;
}

代码示例来源:origin: justlive1/earth-frost

@Override
public int countJobRecords(String groupKey, String jobKey, String jobId) {
 RListMultimap<String, String> sortmap = redissonClient.getListMultimap(JobConfig.RECORD_SORT);
 if (jobId != null && jobId.length() > 0) {
  return sortmap.get(jobId).size();
 }
 String key = Constants.EMPTY;
 if (groupKey != null && groupKey.length() > 0) {
  key = groupKey;
 }
 if (jobKey != null && jobKey.length() > 0) {
  key = String.join(Constants.COLON, key, jobKey);
 }
 return sortmap.get(key).size();
}

代码示例来源:origin: org.redisson/redisson

@Override
public void emit(K key, V value) {
  try {
    ByteBuf encodedKey = codec.getValueEncoder().encode(key);
    long hash = Hash.hash64(encodedKey);
    encodedKey.release();
    int part = (int) Math.abs(hash % parts);
    String partName = name + ":" + part;
    
    RListMultimap<K, V> multimap = client.getListMultimap(partName, codec);
    multimap.put(key, value);
    if (timeout > 0 && !expirationsBitSet.get(part)) {
      multimap.expire(timeout, TimeUnit.MILLISECONDS);
      expirationsBitSet.set(part);
    }
  } catch (IOException e) {
    throw new IllegalArgumentException(e);
  }
}

代码示例来源:origin: justlive1/earth-frost

@Override
public void removeLogger(String jobId) {
 RMap<String, String> map = redissonClient.getMap(JobConfig.LOG_BIND);
 for (String id : redissonClient.<String, String>getListMultimap(JobConfig.LOG_REL)
   .removeAll(jobId)) {
  map.remove(id);
 }
}

代码示例来源:origin: justlive1/earth-frost

@Override
public void pauseJob(String jobId) {
 RListMultimap<String, String> listmap = getRedissonClient().getListMultimap(JobConfig.TASK_ID);
 RScheduledExecutorService service = getRedissonClient().getExecutorService(JobConfig.WORKER);
 Iterator<String> it = listmap.get(jobId).iterator();
 while (it.hasNext()) {
  String id = it.next();
  service.cancelTask(id);
  it.remove();
 }
}

代码示例来源:origin: justlive1/earth-frost

@Override
public String addSimpleJob(String jobId, long timestamp) {
 String taskId = getRedissonClient().getExecutorService(JobConfig.WORKER)
   .scheduleAsync(new JobDispatchWrapper(jobId),
     timestamp - ZonedDateTime.now().toInstant().toEpochMilli(), TimeUnit.MILLISECONDS)
   .getTaskId();
 getRedissonClient().<String, String>getListMultimap(JobConfig.TASK_ID).put(jobId, taskId);
 return taskId;
}

代码示例来源:origin: justlive1/earth-frost

@Override
public JobExecuteRecord findJobExecuteRecordById(String id) {
 RMap<String, JobExecuteRecord> map = redissonClient.getMap(JobConfig.RECORD);
 JobExecuteRecord record = map.get(id);
 RListMultimap<String, JobRecordStatus> recordStatus = redissonClient
   .getListMultimap(JobConfig.RECORD_STATUS);
 List<JobRecordStatus> statuses = recordStatus.getAll(id);
 statuses.forEach(r -> r.fill(record));
 record.setRecordStatuses(statuses);
 return record;
}

代码示例来源:origin: justlive1/earth-frost

@Override
public void addJobScript(JobScript script) {
 RListMultimap<String, JobScript> scriptList = redissonClient
   .getListMultimap(JobConfig.JOB_INFO_SCRIPT);
 script.setId(UUID.randomUUID().toString());
 script.setTime(Date.from(ZonedDateTime.now().toInstant()));
 scriptList.put(script.getJobId(), script);
 if (scriptList.get(script.getJobId()).size() > 20) {
  scriptList.get(script.getJobId()).remove(0);
 }
}

代码示例来源:origin: justlive1/earth-frost

@Override
public void addJob(JobInfo jobInfo) {
 RMap<String, JobInfo> map = redissonClient.getMap(JobConfig.JOB_INFO);
 jobInfo.setId(UUID.randomUUID().toString());
 RList<String> sortList = redissonClient.getList(JobConfig.JOB_INFO_SORT);
 sortList.add(jobInfo.getId());
 // script
 if (JobInfo.TYPE.SCRIPT.name().equals(jobInfo.getType())) {
  JobScript script = new JobScript();
  script.setId(UUID.randomUUID().toString());
  script.setJobId(jobInfo.getId());
  script.setScript(jobInfo.getScript());
  script.setTime(Date.from(ZonedDateTime.now().toInstant()));
  script.setVersion("default");
  redissonClient.<String, JobScript>getListMultimap(JobConfig.JOB_INFO_SCRIPT)
    .put(jobInfo.getId(), script);
 }
 jobInfo.setScript(null);
 map.put(jobInfo.getId(), jobInfo);
}

代码示例来源:origin: justlive1/earth-frost

@Override
public String addDelayJob(String jobId, long initDelay, long delay) {
 String taskId = getRedissonClient().getExecutorService(JobConfig.WORKER)
   .scheduleAtFixedRateAsync(new JobDispatchWrapper(jobId), initDelay, delay, TimeUnit.SECONDS)
   .getTaskId();
 getRedissonClient().<String, String>getListMultimap(JobConfig.TASK_ID).put(jobId, taskId);
 return taskId;
}

代码示例来源:origin: justlive1/earth-frost

@Override
public void removeJobRecords(String jobId) {
 RMap<String, JobExecuteRecord> map = redissonClient.getMap(JobConfig.RECORD);
 RListMultimap<String, String> sortmap = redissonClient.getListMultimap(JobConfig.RECORD_SORT);
 List<String> list = sortmap.removeAll(jobId);
 RListMultimap<String, JobRecordStatus> statusMultimap = redissonClient
   .getListMultimap(JobConfig.RECORD_STATUS);
 JobGroup group = findJobInfoById(jobId).getGroup();
 for (String key : list) {
  sortmap.get(Constants.EMPTY).remove(key);
  if (group != null) {
   sortmap.get(group.getGroupKey()).remove(key);
   sortmap.get(String.join(Constants.COLON, group.getGroupKey(), group.getJobKey()))
     .remove(key);
  }
  statusMultimap.removeAll(key);
  map.remove(key);
  redissonClient.getKeys().delete(String.format(JobConfig.EVENT_SHARDING, jobId, key));
 }
}

代码示例来源:origin: justlive1/earth-frost

@Override
public String addCronJob(String jobId, String cron) {
 String taskId = getRedissonClient().getExecutorService(JobConfig.WORKER)
   .scheduleAsync(new JobDispatchWrapper(jobId), CronSchedule.of(cron)).getTaskId();
 getRedissonClient().<String, String>getListMultimap(
   JobConfig.TASK_ID).put(jobId, taskId);
 return taskId;
}

代码示例来源:origin: justlive1/earth-frost

@Override
public JobInfo findJobInfoById(String id) {
 RMap<String, JobInfo> map = redissonClient.getMap(JobConfig.JOB_INFO);
 JobInfo jobInfo = map.get(id);
 if (jobInfo == null) {
  return jobInfo;
 }
 RListMultimap<String, JobScript> scriptList = redissonClient
   .getListMultimap(JobConfig.JOB_INFO_SCRIPT);
 RList<JobScript> list = scriptList.get(id);
 int size = list.size();
 if (size > 0) {
  JobScript script = list.get(size - 1);
  jobInfo.setScript(script.getScript());
 }
 return jobInfo;
}

相关文章

微信公众号

最新文章

更多