use of com.yanghui.elephant.store.entity.MessageEntity in project elephant by yanghuijava.
the class MessageRequestProcessor method buildMessageEntity.
private MessageEntity buildMessageEntity(byte[] body, SendMessageRequestHeader requestHeader, boolean isTransaction) {
MessageEntity entity = new MessageEntity();
entity.setBody(body);
entity.setCreateTime(new Date());
entity.setDestination(requestHeader.getDestination());
entity.setGroup(requestHeader.getProducerGroup());
entity.setMessageId(requestHeader.getMessageId());
entity.setProperties(requestHeader.getProperties());
entity.setSendStatus(SendStatus.WAIT_SEND.getStatus());
entity.setUpdateTime(entity.getCreateTime());
if (isTransaction) {
entity.setTransaction(true);
entity.setStatus(MessageStatus.CONFIRMING.getStatus());
} else {
entity.setTransaction(false);
entity.setStatus(MessageStatus.CONFIRMED.getStatus());
}
return entity;
}
use of com.yanghui.elephant.store.entity.MessageEntity in project elephant by yanghuijava.
the class MessageEntityManagerImpl method updateStatusByMessageId.
@Override
public void updateStatusByMessageId(int status, String messageId) {
MessageEntity update = new MessageEntity();
update.setMessageId(messageId);
update.setStatus(status);
update.setUpdateTime(new Date());
this.messageEntityMapper.updateByMessageId(update);
}
use of com.yanghui.elephant.store.entity.MessageEntity in project elephant by yanghuijava.
the class MessageEntityManagerImpl method updateSendStatusByMessageId.
@Override
public void updateSendStatusByMessageId(int sendStatus, String messageId) {
MessageEntity update = new MessageEntity();
update.setMessageId(messageId);
update.setSendStatus(sendStatus);
update.setUpdateTime(new Date());
this.messageEntityMapper.updateByMessageId(update);
}
use of com.yanghui.elephant.store.entity.MessageEntity in project elephant by yanghuijava.
the class TransactionCheckJob method execute.
@Override
public void execute(ShardingContext shardingContext) {
List<MessageEntity> findList = this.messageEntityMapper.queryTransactionNotComplete();
log.info("查询没有完成的事务消息(查询1分钟之前的)记录数:{}", findList);
if (findList.isEmpty()) {
return;
}
try {
for (MessageEntity entity : findList) {
CheckTransactionStateRequestHeader requestHeader = new CheckTransactionStateRequestHeader();
requestHeader.setMessageId(entity.getMessageId());
requestHeader.setDestination(entity.getDestination());
requestHeader.setProducerGroup(entity.getGroup());
if (!StringUtil.isNullOrEmpty(entity.getProperties())) {
requestHeader.setProperties(entity.getProperties());
}
RemotingCommand request = RemotingCommand.buildRequestCmd(requestHeader, RequestCode.CHECK_TRANSACTION);
request.setBody(entity.getBody());
sentToClient(request);
}
} catch (Exception e) {
log.error("回查发送异常:{}", e);
}
}
Aggregations