数据漏存和日志
parent
f934ae4c12
commit
cd046d2d43
|
@ -69,6 +69,7 @@ public class LjsdMongoTemplate {
|
||||||
coll.update(searchQuery, dbObject);
|
coll.update(searchQuery, dbObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//非用户线程记得更新玩家数据
|
||||||
public void lastUpdate() throws Exception {
|
public void lastUpdate() throws Exception {
|
||||||
MongoUpdateCacheThreadLocal.update(this);
|
MongoUpdateCacheThreadLocal.update(this);
|
||||||
}
|
}
|
||||||
|
|
|
@ -112,11 +112,16 @@ public class HandlerLogicThread extends Thread{
|
||||||
public void doWork(){
|
public void doWork(){
|
||||||
try {
|
try {
|
||||||
AyyncWorker ayyncWorker =null;
|
AyyncWorker ayyncWorker =null;
|
||||||
|
boolean hasAsyncWorker =false;
|
||||||
while ( (ayyncWorker = ayyncWorkerConcurrentLinkedQueue.poll())!=null){
|
while ( (ayyncWorker = ayyncWorkerConcurrentLinkedQueue.poll())!=null){
|
||||||
|
hasAsyncWorker=true;
|
||||||
ayyncWorker.work(ayyncWorker.getUser());
|
ayyncWorker.work(ayyncWorker.getUser());
|
||||||
}
|
}
|
||||||
PacketNetData packetNetData = handlerLinkedQueue.poll();
|
PacketNetData packetNetData = handlerLinkedQueue.poll();
|
||||||
if(packetNetData == null){
|
if(packetNetData == null){
|
||||||
|
if(hasAsyncWorker){
|
||||||
|
MongoUtil.getInstence().lastUpdate();
|
||||||
|
}
|
||||||
Thread.sleep(2);
|
Thread.sleep(2);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -219,8 +219,8 @@ public class MongoUtil {
|
||||||
} else {
|
} else {
|
||||||
if (value instanceof JsonObject && o2.get(key) instanceof JsonObject) {
|
if (value instanceof JsonObject && o2.get(key) instanceof JsonObject) {
|
||||||
if (!equill((JsonObject) value, (JsonObject) o2.get(key), builder, builder2)) {
|
if (!equill((JsonObject) value, (JsonObject) o2.get(key), builder, builder2)) {
|
||||||
// builder.append("type111111:o1 = [" + o1 + "]\r\n");
|
builder.append("type111111:o1 = [" + o1 + "]\r\n");
|
||||||
// builder2.append( "type111111:o2 = [" + o2 + "]\r\n");
|
builder2.append( "type111111:o2 = [" + o2 + "]\r\n");
|
||||||
is = false;
|
is = false;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -339,7 +339,7 @@ public abstract class AbstractActivity implements IActivity, IEventHandler {
|
||||||
public void setOpenState(User user,int openState){
|
public void setOpenState(User user,int openState){
|
||||||
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);
|
ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||||
if(activityMission != null){
|
if(activityMission != null){
|
||||||
activityMission.setActivityState(openState);
|
activityMission.setOpenType(openState);
|
||||||
Poster.getPoster().dispatchEvent(new ActivityStateChangeEvent(user.getId(),id,openState));
|
Poster.getPoster().dispatchEvent(new ActivityStateChangeEvent(user.getId(),id,openState));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -145,36 +145,44 @@ public class MinuteTask extends Thread {
|
||||||
int minute = calendar.get(Calendar.MINUTE);
|
int minute = calendar.get(Calendar.MINUTE);
|
||||||
if(hour == 5 && minute ==0){
|
if(hour == 5 && minute ==0){
|
||||||
|
|
||||||
Map<Integer, GuildInfo> guildInfoMap = GuilidManager.guildInfoMap;
|
//保证每分钟线程
|
||||||
for(Map.Entry<Integer,GuildInfo> guildInfoEntry:guildInfoMap.entrySet()){
|
try {
|
||||||
RedisUtil.getInstence().del(RedisKey.getKey(RedisKey.GUILD_RED_PACKAGE_RANK,String.valueOf(guildInfoEntry.getKey()),false));
|
Map<Integer, GuildInfo> guildInfoMap = GuilidManager.guildInfoMap;
|
||||||
guildInfoEntry.getValue().reSetFete();
|
for(Map.Entry<Integer,GuildInfo> guildInfoEntry:guildInfoMap.entrySet()){
|
||||||
|
RedisUtil.getInstence().del(RedisKey.getKey(RedisKey.GUILD_RED_PACKAGE_RANK,String.valueOf(guildInfoEntry.getKey()),false));
|
||||||
|
guildInfoEntry.getValue().reSetFete();
|
||||||
|
|
||||||
SimpleTransaction transaction = SimpleTransaction.current();
|
SimpleTransaction transaction = SimpleTransaction.current();
|
||||||
GuildInfo guildInfo = guildInfoEntry.getValue();
|
GuildInfo guildInfo = guildInfoEntry.getValue();
|
||||||
Set<Integer> sendUids = new HashSet<>();
|
Set<Integer> sendUids = new HashSet<>();
|
||||||
for (Set<Integer> items : guildInfo.getMembers().values()) {
|
for (Set<Integer> items : guildInfo.getMembers().values()) {
|
||||||
sendUids.addAll(items);
|
sendUids.addAll(items);
|
||||||
|
}
|
||||||
|
Lockeys.getLockeys().lock("guild",sendUids);
|
||||||
|
guildInfo.clearGuildHelpLog();
|
||||||
|
|
||||||
|
//统一清除
|
||||||
|
for (Integer sendUid : sendUids) {
|
||||||
|
User target = UserManager.getUser(sendUid);
|
||||||
|
GuildLogic.sendGuildHelpRewardEmail(target);
|
||||||
|
GuildMyInfo guildMyInfo = target.getGuildMyInfo();
|
||||||
|
guildMyInfo.setGuidHelpInfo(new HashMap<>());
|
||||||
|
guildMyInfo.setGuidHelpHadTakeInfo(new HashMap<>());
|
||||||
|
guildMyInfo.setGuildHelpSendTime(0);
|
||||||
|
guildMyInfo.setGuildHelpReward(false);
|
||||||
|
guildMyInfo.setGuildHelpTime(0);
|
||||||
|
}
|
||||||
|
SimpleTransaction.remove();
|
||||||
|
//处理公会援助信息
|
||||||
|
|
||||||
|
//入库
|
||||||
|
MongoUtil.getInstence().lastUpdate();
|
||||||
}
|
}
|
||||||
Lockeys.getLockeys().lock("guild",sendUids);
|
}catch (Exception e){
|
||||||
guildInfo.clearGuildHelpLog();
|
LOGGER.error("Exception everyFiveTask" );
|
||||||
|
|
||||||
//统一清除
|
|
||||||
for (Integer sendUid : sendUids) {
|
|
||||||
User target = UserManager.getUser(sendUid);
|
|
||||||
GuildLogic.sendGuildHelpRewardEmail(target);
|
|
||||||
GuildMyInfo guildMyInfo = target.getGuildMyInfo();
|
|
||||||
guildMyInfo.setGuidHelpInfo(new HashMap<>());
|
|
||||||
guildMyInfo.setGuidHelpHadTakeInfo(new HashMap<>());
|
|
||||||
guildMyInfo.setGuildHelpSendTime(0);
|
|
||||||
guildMyInfo.setGuildHelpReward(false);
|
|
||||||
guildMyInfo.setGuildHelpTime(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
SimpleTransaction.remove();
|
|
||||||
//处理公会援助信息
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
LOGGER.info("DailyOfFiveTask start ...");
|
LOGGER.info("DailyOfFiveTask start ...");
|
||||||
GlobalDataManaager.everTask(5);
|
GlobalDataManaager.everTask(5);
|
||||||
LOGGER.info("DailyOfFiveTask end ...");
|
LOGGER.info("DailyOfFiveTask end ...");
|
||||||
|
|
Loading…
Reference in New Issue