Search in sources :

Example 6 with MessageEntity

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;
}
Also used : MessageEntity(com.yanghui.elephant.store.entity.MessageEntity) Date(java.util.Date)

Example 7 with MessageEntity

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);
}
Also used : MessageEntity(com.yanghui.elephant.store.entity.MessageEntity) Date(java.util.Date)

Example 8 with MessageEntity

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);
}
Also used : MessageEntity(com.yanghui.elephant.store.entity.MessageEntity) Date(java.util.Date)

Example 9 with MessageEntity

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);
    }
}
Also used : RemotingCommand(com.yanghui.elephant.remoting.procotol.RemotingCommand) MessageEntity(com.yanghui.elephant.store.entity.MessageEntity) CheckTransactionStateRequestHeader(com.yanghui.elephant.common.protocol.header.CheckTransactionStateRequestHeader)

Aggregations

MessageEntity (com.yanghui.elephant.store.entity.MessageEntity)9 Date (java.util.Date)4 Message (com.yanghui.elephant.common.message.Message)3 RemotingCommand (com.yanghui.elephant.remoting.procotol.RemotingCommand)3 LocalTransactionState (com.yanghui.elephant.common.constant.LocalTransactionState)1 CheckTransactionStateRequestHeader (com.yanghui.elephant.common.protocol.header.CheckTransactionStateRequestHeader)1 Map (java.util.Map)1