io.eventuate.tram.messaging.common.Message.getId()方法的使用及代码示例

x33g5p2x  于2022-01-25 转载在 其他  
字(9.6k)|赞(0)|评价(0)|浏览(111)

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

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());
}

相关文章