本文整理了Java中io.eventuate.tram.messaging.common.Message.getId()
方法的一些代码示例,展示了Message.getId()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Message.getId()
方法的具体详情如下:
包路径:io.eventuate.tram.messaging.common.Message
类名称:Message
方法名:getId
暂无
代码示例来源:origin: io.eventuate.tram.core/eventuate-tram-consumer-rabbitmq
private void handleMessage(String subscriberId, MessageHandler handler, Message tramMessage, Runnable acknowledgeCallback) {
transactionTemplate.execute(ts -> {
if (duplicateMessageDetector.isDuplicate(subscriberId, tramMessage.getId())) {
logger.info("consumer {} with subscriberId {} received message duplicate with id{}", id, subscriberId, tramMessage.getId());
acknowledgeCallback.run();
return null;
}
try {
handler.accept(tramMessage);
logger.info("consumer {} with subscriberId {} handled message with id {}", id, subscriberId, tramMessage.getId());
} catch (Throwable t) {
logger.info("consumer {} with subscriberId {} got exception when tried to handle message with id {}", id, subscriberId, tramMessage.getId());
logger.info("Got exception ", t);
} finally {
acknowledgeCallback.run();
}
return null;
});
}
代码示例来源:origin: io.eventuate.tram.core/eventuate-tram-consumer-activemq
if (duplicateMessageDetector.isDuplicate(subscriberId, tramMessage.getId())) {
logger.trace("Duplicate message {} {}", subscriberId, tramMessage.getId());
acknowledge(textMessage);
return null;
logger.trace("Invoking handler {} {}", subscriberId, tramMessage.getId());
handler.accept(tramMessage);
logger.trace("handled message {} {}", subscriberId, tramMessage.getId());
} catch (Throwable t) {
logger.trace("Got exception {} {}", subscriberId, tramMessage.getId());
logger.trace("Got exception ", t);
} finally {
代码示例来源:origin: eventuate-tram/eventuate-tram-sagas
@Override
public Optional<Message> unlock(String sagaId, String target) {
Optional<String> owningSagaId = selectForUpdate(target);
Assert.isTrue(owningSagaId.isPresent());
Assert.isTrue(owningSagaId.get().equals(sagaId), String.format("Expected owner to be %s but is %s", sagaId, owningSagaId.get()));
logger.debug("Saga {} has unlocked {}", sagaId, target);
List<StashedMessage> stashedMessages = jdbcTemplate.query(selectFromSagaStashTableSql, (rs, rowNum) -> {
return new StashedMessage(rs.getString("saga_type"), rs.getString("saga_id"),
MessageBuilder.withPayload(rs.getString("message_payload")).withExtraHeaders("",
JSonMapper.fromJson(rs.getString("message_headers"), Map.class)).build());
}, target);
if (stashedMessages.isEmpty()) {
assertEqualToOne(jdbcTemplate.update(deleteFromSagaLockTableSql, target));
return Optional.empty();
}
StashedMessage stashedMessage = stashedMessages.get(0);
logger.debug("unstashed from {} for {} : {}", sagaId, target, stashedMessage.getMessage());
assertEqualToOne(jdbcTemplate.update(updateSagaLockTableSql, stashedMessage.getSagaType(),
stashedMessage.getSagaId(), target));
assertEqualToOne(jdbcTemplate.update(deleteFromSagaStashTableSql, stashedMessage.getMessage().getId()));
return Optional.of(stashedMessage.getMessage());
}
代码示例来源:origin: io.eventuate.tram.core/eventuate-tram-producer-jdbc
private void send(Message message) {
String table = eventuateSchema.qualifyTable("message");
jdbcTemplate.update(String.format("insert into %s(id, destination, headers, payload, creation_time) values(?, ?, ?, ?, %s)",
table,
currentTimeInMillisecondsSql),
message.getId(),
message.getRequiredHeader(Message.DESTINATION),
JSonMapper.toJson(message.getHeaders()),
message.getPayload());
}
}
代码示例来源:origin: eventuate-tram/eventuate-tram-core
@Override
public String send(String channel, String resource, Command command, String replyTo, Map<String, String> headers) {
Message message = makeMessage(channel, resource, command, replyTo, headers);
messageProducer.send(channelMapping.transform(channel), message);
return message.getId();
}
代码示例来源:origin: eventuate-tram/eventuate-tram-core
private void send(Message message) {
String table = eventuateSchema.qualifyTable("message");
jdbcTemplate.update(String.format("insert into %s(id, destination, headers, payload) values(?, ?, ?, ?)", table),
message.getId(),
message.getRequiredHeader(Message.DESTINATION),
JSonMapper.toJson(message.getHeaders()),
message.getPayload());
}
代码示例来源:origin: io.eventuate.tram.sagas/eventuate-jpa-sagas-framework
@Override
public Optional<Message> unlock(String sagaId, String target) {
Optional<String> owningSagaId = selectForUpdate(target);
Assert.isTrue(owningSagaId.isPresent());
Assert.isTrue(owningSagaId.get().equals(sagaId), String.format("Expected owner to be %s but is %s", sagaId, owningSagaId.get()));
logger.debug("Saga {} has unlocked {}", sagaId, target);
List<StashedMessage> stashedMessages = jdbcTemplate.query(selectFromSagaStashTableSql, (rs, rowNum) -> {
return new StashedMessage(rs.getString("saga_type"), rs.getString("saga_id"),
MessageBuilder.withPayload(rs.getString("message_payload")).withExtraHeaders("",
JSonMapper.fromJson(rs.getString("message_headers"), Map.class)).build());
}, target);
if (stashedMessages.isEmpty()) {
assertEqualToOne(jdbcTemplate.update(deleteFromSagaLockTableSql, target));
return Optional.empty();
}
StashedMessage stashedMessage = stashedMessages.get(0);
logger.debug("unstashed from {} for {} : {}", sagaId, target, stashedMessage.getMessage());
assertEqualToOne(jdbcTemplate.update(updateSagaLockTableSql, stashedMessage.getSagaType(),
stashedMessage.getSagaId(), target));
assertEqualToOne(jdbcTemplate.update(deleteFromSagaStashTableSql, stashedMessage.getMessage().getId()));
return Optional.of(stashedMessage.getMessage());
}
代码示例来源:origin: eventuate-tram/eventuate-tram-core
try {
transactionTemplate.execute(ts -> {
if (duplicateMessageDetector.isDuplicate(subscriberId, message.getId())) {
logger.trace("Duplicate message {} {}", subscriberId, message.getId());
callback.accept(null, null);
return null;
logger.trace("Invoking handler {} {}", subscriberId, message.getId());
preHandle(subscriberId, message);
handler.accept(message);
} catch (Throwable t) {
postHandle(subscriberId, message, t);
logger.trace("Got exception {} {}", subscriberId, message.getId());
logger.trace("Got exception ", t);
callback.accept(null, t);
return null;
logger.trace("handled message {} {}", subscriberId, message.getId());
callback.accept(null, null);
return null;
代码示例来源:origin: eventuate-tram/eventuate-tram-core
public void messageHandler(Message message) {
logger.trace("Received message {} {}", commandDispatcherId, message);
Optional<CommandHandler> possibleMethod = commandHandlers.findTargetMethod(message);
if (!possibleMethod.isPresent()) {
throw new RuntimeException("No method for " + message);
}
CommandHandler m = possibleMethod.get();
Object param = convertPayload(m, message.getPayload());
Map<String, String> correlationHeaders = correlationHeaders(message.getHeaders());
Map<String, String> pathVars = getPathVars(message, m);
Optional<String> defaultReplyChannel = message.getHeader(CommandMessageHeaders.REPLY_TO);
List<Message> replies;
try {
CommandMessage cm = new CommandMessage(message.getId(), param, correlationHeaders, message);
replies = invoke(m, cm, pathVars);
logger.trace("Generated replies {} {} {}", commandDispatcherId, message, replies);
} catch (Exception e) {
logger.trace("Generated error {} {} {}", commandDispatcherId, message, e.getClass().getName());
handleException(message, param, m, e, pathVars, defaultReplyChannel);
return;
}
if (replies != null) {
publish(correlationHeaders, replies, defaultReplyChannel);
} else {
logger.trace("Null replies - not publishling");
}
}
代码示例来源:origin: eventuate-tram/eventuate-tram-core
@PostMapping(path= "/foo/{id}")
public String sendSomething(@RequestBody TestMessage message, @PathVariable String id) {
Message message1 = MessageBuilder.withPayload(JSonMapper.toJson(message)).build();
messageProducer.send("testChannel", message1);
return message1.getId();
}
代码示例来源:origin: eventuate-tram/eventuate-tram-core
@Test
public void shouldSetIdWithinTransaction() {
Message m = MessageBuilder.withPayload(payload).build();
transactionTemplate.execute((TransactionCallback<Void>) status -> {
inMemoryMessaging.send(destination, m);
assertNotNull(m.getId());
return null;
});
}
代码示例来源:origin: eventuate-tram/eventuate-tram-core
@Test
public void shouldDeliverToMatchingSubscribers() {
inMemoryMessaging.subscribe(subscriberId, Collections.singleton(destination), mh);
Message m = MessageBuilder.withPayload(payload).build();
inMemoryMessaging.send(destination, m);
assertNotNull(m.getId());
mh.shouldReceiveMessage(payload);
}
代码示例来源:origin: io.eventuate.tram.sagas/eventuate-jpa-sagas-framework
String requestId = message.getRequiredHeader(SagaReplyHeaders.REPLY_SAGA_REQUEST_ID);
String messageId = message.getId();
代码示例来源:origin: eventuate-tram/eventuate-tram-sagas
@Test
public void shouldReleaseLockAndUnstashMessage() {
String sagaId1 = idGenerator.genId().toString();
String sagaId2 = idGenerator.genId().toString();
String target = "/target/" + idGenerator.genId().toString();
String messageId = idGenerator.genId().toString();
assertTrue(sagaLockManager.claimLock(sagaType, sagaId1, target));
assertFalse(sagaLockManager.claimLock(sagaType, sagaId2, target));
String payload = "hello";
Message message = MessageBuilder.withPayload(payload).withHeader(Message.ID, messageId).build();
sagaLockManager.stashMessage(sagaType, sagaId2, target, message);
Optional<Message> unstashedMessage1 = sagaLockManager.unlock(sagaId1, target);
assertTrue(unstashedMessage1.isPresent());
assertEquals(messageId, unstashedMessage1.get().getId());
assertEquals(payload, unstashedMessage1.get().getPayload());
assertFalse(sagaLockManager.unlock(sagaId2, target).isPresent());
}
内容来源于网络,如有侵权,请联系作者删除!