@Override public void push(String queueName, String id, long offsetTimeInSecond) { Message msg = new Message(id, null); msg.setTimeout(offsetTimeInSecond, TimeUnit.SECONDS); queues.get(queueName).push(Collections.singletonList(msg)); }
@Override public List<com.netflix.conductor.core.events.queue.Message> pollMessages(String queueName, int count, int timeout) { List<Message> msgs = queues.get(queueName).pop(count, timeout, TimeUnit.MILLISECONDS); return msgs.stream() .map(msg -> new com.netflix.conductor.core.events.queue.Message(msg.getId(), msg.getPayload(), null)) .collect(Collectors.toList()); }
@Override public boolean setOffsetTime(String queueName, String id, long offsetTimeInSecond) { DynoQueue queue = queues.get(queueName); return queue.setTimeout(id, offsetTimeInSecond); }
@Override public boolean setUnackTimeout(String queueName, String messageId, long timeout) { return queues.get(queueName).setUnackTimeout(messageId, timeout); }
@Override public long size() { long size = 0; for (DynoQueue q : queues.values()) { size += q.size(); } return size; }
@Override public boolean setUnackTimeout(String messageId, long timeout) { for (DynoQueue q : queues.values()) { if (q.setUnackTimeout(messageId, timeout)) { return true; } } return false; }
@Override public boolean remove(String messageId) { for (DynoQueue q : queues.values()) { if (q.remove(messageId)) { return true; } } return false; }
@Override public boolean pushIfNotExists(String queueName, String id, long offsetTimeInSecond) { DynoQueue queue = queues.get(queueName); if (queue.get(id) != null) { return false; } Message msg = new Message(id, null); msg.setTimeout(offsetTimeInSecond, TimeUnit.SECONDS); queue.push(Collections.singletonList(msg)); return true; }
@Override public boolean pushIfNotExists(String queueName, String id, long offsetTimeInSecond) { DynoQueue queue = queues.get(queueName); if (queue.get(id) != null) { return false; } Message msg = new Message(id, null); msg.setTimeout(offsetTimeInSecond, TimeUnit.SECONDS); queue.push(Collections.singletonList(msg)); return true; }
@Override public void push(String queueName, String id, long offsetTimeInSecond) { Message msg = new Message(id, null); msg.setTimeout(offsetTimeInSecond, TimeUnit.SECONDS); queues.get(queueName).push(Collections.singletonList(msg)); }