幸运24-雪花主键-mq-组织do和insertIgnore拆分
This commit is contained in:
@@ -208,12 +208,10 @@ public class Lucky24GiftSendService {
|
|||||||
private void sendMq(Map<Long, Lucky24Record> recordMap) {
|
private void sendMq(Map<Long, Lucky24Record> recordMap) {
|
||||||
Map<String, Lucky24Message> caches = new HashMap<>(recordMap.size());
|
Map<String, Lucky24Message> caches = new HashMap<>(recordMap.size());
|
||||||
List<Lucky24Message> messageList = new ArrayList<>();
|
List<Lucky24Message> messageList = new ArrayList<>();
|
||||||
|
|
||||||
DefaultIdentifierGenerator idGenerator = DefaultIdentifierGenerator.getInstance();
|
|
||||||
|
|
||||||
for (Lucky24Record record: recordMap.values()){
|
for (Lucky24Record record: recordMap.values()){
|
||||||
long id = identifierGenerator.nextId(null).longValue();
|
Long id = identifierGenerator.nextId(null).longValue();
|
||||||
String messId = idGenerator.nextUUID(null);
|
String messId = id.toString();
|
||||||
|
|
||||||
Lucky24Message message = new Lucky24Message();
|
Lucky24Message message = new Lucky24Message();
|
||||||
message.setId(id);
|
message.setId(id);
|
||||||
|
@@ -60,12 +60,18 @@ public class Lucky24MessageService implements InitializingBean {
|
|||||||
|
|
||||||
public void handleMessage(Lucky24Message giftMessage) {
|
public void handleMessage(Lucky24Message giftMessage) {
|
||||||
|
|
||||||
Room room = null != giftMessage.getRoomUid()? roomService.getRoomByUid(giftMessage.getRoomUid()): null;
|
log.info("【处理lucky24 mq】 开始处理 giftMessage: {}", JSON.toJSONString(giftMessage));
|
||||||
|
|
||||||
|
Lucky24Record record = buildLucky24Record(giftMessage);
|
||||||
|
int row = insertLucky24RecordIgnore(giftMessage, record);
|
||||||
|
if (row <= 0){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Room room = null != giftMessage.getRoomUid() ? roomService.getRoomByUid(giftMessage.getRoomUid()) : null;
|
||||||
Gift gift = giftService.getGiftById(giftMessage.getGiftId());
|
Gift gift = giftService.getGiftById(giftMessage.getGiftId());
|
||||||
Date createTime = new Date(giftMessage.getCreateTime());
|
Date createTime = new Date(giftMessage.getCreateTime());
|
||||||
|
|
||||||
Lucky24Record record = insertRecordIgnore(giftMessage);
|
|
||||||
|
|
||||||
// 收礼者收益
|
// 收礼者收益
|
||||||
Lucky24GiftConfig config = sendService.getConfig();
|
Lucky24GiftConfig config = sendService.getConfig();
|
||||||
Lucky24GiftConfig partitionConfig = config.getRatioByPartitionId(giftMessage.getPartitionId());
|
Lucky24GiftConfig partitionConfig = config.getRatioByPartitionId(giftMessage.getPartitionId());
|
||||||
@@ -75,7 +81,7 @@ public class Lucky24MessageService implements InitializingBean {
|
|||||||
log.info("【处理lucky24 mq】 收礼收益已发放 messId: {} incomeAllot: {}", giftMessage.getMessId(), JSON.toJSONString(receiverIncomeAllot));
|
log.info("【处理lucky24 mq】 收礼收益已发放 messId: {} incomeAllot: {}", giftMessage.getMessId(), JSON.toJSONString(receiverIncomeAllot));
|
||||||
|
|
||||||
// 异步,报错不会触发mq重试
|
// 异步,报错不会触发mq重试
|
||||||
if (!CollectionUtils.isEmpty(config.getFollowUidList()) && config.getFollowUidList().contains(record.getUid())){
|
if (!CollectionUtils.isEmpty(config.getFollowUidList()) && config.getFollowUidList().contains(record.getUid())) {
|
||||||
robotMsgService.pushFollowUser(record.getUid(), record.getReceiverUid(), record.getRoomUid());
|
robotMsgService.pushFollowUser(record.getUid(), record.getReceiverUid(), record.getRoomUid());
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -86,16 +92,11 @@ public class Lucky24MessageService implements InitializingBean {
|
|||||||
recordMessMap.fastRemove(giftMessage.getMessId());
|
recordMessMap.fastRemove(giftMessage.getMessId());
|
||||||
}
|
}
|
||||||
|
|
||||||
private Lucky24Record insertRecordIgnore(Lucky24Message giftMessage) {
|
private Lucky24Record buildLucky24Record(Lucky24Message giftMessage) {
|
||||||
|
|
||||||
long startTime = System.currentTimeMillis();
|
|
||||||
long getPoolTime = 0;
|
|
||||||
long insertTime = 0;
|
|
||||||
|
|
||||||
Lucky24Record record = new Lucky24Record();
|
Lucky24Record record = new Lucky24Record();
|
||||||
|
|
||||||
if (null == giftMessage.getId()){
|
if (null == giftMessage.getId()) {
|
||||||
giftMessage.setId(identifierGenerator.nextId( null).longValue());
|
giftMessage.setId(identifierGenerator.nextId(null).longValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
record.setId(giftMessage.getId());
|
record.setId(giftMessage.getId());
|
||||||
@@ -110,12 +111,11 @@ public class Lucky24MessageService implements InitializingBean {
|
|||||||
record.setPoolType(giftMessage.getPoolType());
|
record.setPoolType(giftMessage.getPoolType());
|
||||||
record.setPoolId(giftMessage.getPoolId());
|
record.setPoolId(giftMessage.getPoolId());
|
||||||
|
|
||||||
if (null == giftMessage.getPoolType() && null != giftMessage.getPoolId()){
|
if (null == giftMessage.getPoolType() && null != giftMessage.getPoolId()) {
|
||||||
Lucky24Pool pool = poolMapper.selectById(giftMessage.getPoolId());
|
Lucky24Pool pool = poolMapper.selectById(giftMessage.getPoolId());
|
||||||
if (null != pool){
|
if (null != pool) {
|
||||||
record.setPoolType(pool.getType());
|
record.setPoolType(pool.getType());
|
||||||
}
|
}
|
||||||
getPoolTime = System.currentTimeMillis();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
record.setIsSupplement(giftMessage.getIsSupplement());
|
record.setIsSupplement(giftMessage.getIsSupplement());
|
||||||
@@ -125,13 +125,16 @@ public class Lucky24MessageService implements InitializingBean {
|
|||||||
record.setCreateTime(new Date(giftMessage.getCreateTime()));
|
record.setCreateTime(new Date(giftMessage.getCreateTime()));
|
||||||
record.setStockResult(giftMessage.getStockResult());
|
record.setStockResult(giftMessage.getStockResult());
|
||||||
|
|
||||||
|
return record;
|
||||||
|
}
|
||||||
|
|
||||||
|
private int insertLucky24RecordIgnore(Lucky24Message giftMessage, Lucky24Record record) {
|
||||||
|
long startTime = System.currentTimeMillis();
|
||||||
int insertRow = recordService.insertRecordIgnore(record);
|
int insertRow = recordService.insertRecordIgnore(record);
|
||||||
long endTime = System.currentTimeMillis();
|
long endTime = System.currentTimeMillis();
|
||||||
|
|
||||||
log.info("insertLucky24RecordIgnore row {} performance - getPool: {}ms, insert: {}ms, total: {}ms",
|
log.info("insertLucky24RecordIgnore row {} performance - total: {}ms",
|
||||||
insertRow,
|
insertRow,
|
||||||
getPoolTime - startTime,
|
|
||||||
insertTime - getPoolTime,
|
|
||||||
endTime - startTime);
|
endTime - startTime);
|
||||||
|
|
||||||
if (insertRow > 0){
|
if (insertRow > 0){
|
||||||
@@ -139,7 +142,7 @@ public class Lucky24MessageService implements InitializingBean {
|
|||||||
giftMessage.getMessId(), record.getId(), JSON.toJSONString(record));
|
giftMessage.getMessId(), record.getId(), JSON.toJSONString(record));
|
||||||
}
|
}
|
||||||
|
|
||||||
return record;
|
return insertRow;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -147,4 +150,4 @@ public class Lucky24MessageService implements InitializingBean {
|
|||||||
recordMessMap = redissonClient.getMap(RedisKey.lucky_24_record_message.getKey());
|
recordMessMap = redissonClient.getMap(RedisKey.lucky_24_record_message.getKey());
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
Reference in New Issue
Block a user