异步线程修改,任务线程新增
parent
516002defb
commit
25a0c84064
|
|
@ -3,6 +3,7 @@ package com.ljsd.jieling.logic.arena;
|
|||
|
||||
|
||||
import com.ljsd.jieling.core.GlobalsDef;
|
||||
import com.ljsd.jieling.core.HandlerLogicThread;
|
||||
import com.ljsd.jieling.core.VipPrivilegeType;
|
||||
import com.ljsd.jieling.db.mongo.MongoUtil;
|
||||
import com.ljsd.jieling.db.redis.RedisKey;
|
||||
|
|
@ -26,6 +27,7 @@ import com.ljsd.jieling.logic.hero.HeroLogic;
|
|||
import com.ljsd.jieling.logic.mail.MailLogic;
|
||||
import com.ljsd.jieling.logic.mission.GameEvent;
|
||||
import com.ljsd.jieling.logic.mission.event.MissionEventDistributor;
|
||||
import com.ljsd.jieling.network.server.ProtocolsManager;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.protocols.ArenaInfoProto;
|
||||
import com.ljsd.jieling.protocols.CommonProto;
|
||||
|
|
@ -220,10 +222,11 @@ public class ArenaLogic {
|
|||
.setFightResult(fightResult)
|
||||
.build();
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.ARENA_CHALLENGE,fightResult, myscore + myscoreChange);
|
||||
if(defUser!=null){
|
||||
user.getUserMissionManager().onGameEvent(defUser, GameEvent.ARENA_CHALLENGE,fightResult,defScore+defScoreChange);
|
||||
if(defUser!=null) {
|
||||
// user.getUserMissionManager().onGameEvent(defUser, GameEvent.ARENA_CHALLENGE,fightResult,defScore + defScoreChange);
|
||||
AyyncWorker ayyncWorker = new AyyncWorker(defUser, true, new AynMissionWorker(GameEvent.ARENA_CHALLENGE, fightResult, defScore + defScoreChange));
|
||||
ProtocolsManager.getInstance().updateAyncWorker(ayyncWorker);
|
||||
}
|
||||
|
||||
Poster.getPoster().dispatchEvent(new ArenaChallengeEvent(user.getId()));
|
||||
MessageUtil.sendMessage(session,1, MessageTypeProto.MessageType.ARENA_CHALLENGE_RESPONSE_VALUE,build,true);
|
||||
KtEventUtils.onKtEvent(user, ParamEventBean.UserGameType,KTGameType.ARENA.getIndex(),challengeUid);
|
||||
|
|
|
|||
|
|
@ -369,20 +369,8 @@ public class FriendLogic {
|
|||
}
|
||||
|
||||
private void updateFriendUserInfo(User friendUser){
|
||||
AyyncWorker ayyncWorker = new AyyncWorker(friendUser, true, (user) ->
|
||||
{
|
||||
boolean isOnline = OnlineUserManager.checkUidOnline(user.getId());
|
||||
MissionEventDistributor.requestStart();
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.FRIEND_NUMS, 1);
|
||||
if (isOnline) {
|
||||
ISession session = OnlineUserManager.getSessionByUid(user.getId());
|
||||
MissionEventDistributor.requestEnd(session, true);
|
||||
}
|
||||
MongoUtil.getInstence().lastUpdate();
|
||||
}) ;
|
||||
ProtocolsManager instance = ProtocolsManager.getInstance();
|
||||
HandlerLogicThread handlerThread = instance.handlerThreads[friendUser.getId() % instance.HANDLER_THREAD_NUM];
|
||||
handlerThread.addAyyncWorker(ayyncWorker);
|
||||
AyyncWorker ayyncWorker = new AyyncWorker(friendUser, true, new AynMissionWorker(GameEvent.FRIEND_NUMS,1)) ;
|
||||
ProtocolsManager.getInstance().updateAyncWorker(ayyncWorker);
|
||||
}
|
||||
|
||||
private int allApplyFriend(int uid, FriendManager friendManager, List<Integer> friends, List<Integer> applyFriends, int maxFriends) throws Exception {
|
||||
|
|
|
|||
|
|
@ -1128,9 +1128,7 @@ public class HeroLogic {
|
|||
}
|
||||
}
|
||||
});
|
||||
ProtocolsManager instance = ProtocolsManager.getInstance();
|
||||
HandlerLogicThread handlerThread = instance.handlerThreads[user.getId() % instance.HANDLER_THREAD_NUM];
|
||||
handlerThread.addAyyncWorker(ayyncWorker);
|
||||
ProtocolsManager.getInstance().updateAyncWorker(ayyncWorker);
|
||||
}
|
||||
//天赋异妖加成
|
||||
Map<Integer, Pokemon> ringFireMap = pokemonManager.getRingFireMap();
|
||||
|
|
|
|||
|
|
@ -136,9 +136,7 @@ public class StoreLogic {
|
|||
|
||||
private static void updateUsersStoreAyync(User user, AyncWorkerRunnable ayncWorkerRunnable){
|
||||
AyyncWorker ayyncWorker = new AyyncWorker(user,true,ayncWorkerRunnable);
|
||||
ProtocolsManager instance = ProtocolsManager.getInstance();
|
||||
HandlerLogicThread handlerThread = instance.handlerThreads[user.getId() % instance.HANDLER_THREAD_NUM];
|
||||
handlerThread.addAyyncWorker(ayyncWorker);
|
||||
ProtocolsManager.getInstance().updateAyncWorker(ayyncWorker);
|
||||
}
|
||||
|
||||
public static void getAllStoreInfo(ISession iSession) throws Exception {
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ import com.ljsd.jieling.network.session.ISession;
|
|||
import com.ljsd.jieling.protocol.ProtocolsAbstract;
|
||||
import com.ljsd.jieling.protocols.MessageTypeProto;
|
||||
import com.ljsd.jieling.session.GameSession;
|
||||
import com.ljsd.jieling.util.AyyncWorker;
|
||||
import util.MathUtils;
|
||||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import util.StringUtil;
|
||||
|
|
@ -557,5 +558,10 @@ public class ProtocolsManager implements ProtocolsAbstract {
|
|||
{
|
||||
}
|
||||
}
|
||||
|
||||
public void updateAyncWorker(AyyncWorker worker){
|
||||
HandlerLogicThread handlerThread = instance.handlerThreads[worker.getUser().getId() % instance.HANDLER_THREAD_NUM];
|
||||
handlerThread.addAyyncWorker(worker);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -36,9 +36,7 @@ public class FetchBloodyEndDataThread extends Thread{
|
|||
AyyncWorker ayyncWorker = new AyyncWorker(user, true,(user1) ->
|
||||
BloodLogic.getInstance().calBloodyMissionInfo(user1,sortDataBean)
|
||||
);
|
||||
ProtocolsManager instance = ProtocolsManager.getInstance();
|
||||
HandlerLogicThread handlerThread = instance.handlerThreads[uid % instance.HANDLER_THREAD_NUM];
|
||||
handlerThread.addAyyncWorker(ayyncWorker);
|
||||
ProtocolsManager.getInstance().updateAyncWorker(ayyncWorker);
|
||||
RedisUtil.getInstence().removeMapEntrys(RedisKey.BLOODY_PERSON_BATTLE_INFO, Integer.toString(GameApplication.serverId),Integer.toString(uid));
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,32 @@
|
|||
package com.ljsd.jieling.util;
|
||||
|
||||
import com.ljsd.jieling.db.mongo.MongoUtil;
|
||||
import com.ljsd.jieling.logic.OnlineUserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.mission.GameEvent;
|
||||
import com.ljsd.jieling.logic.mission.event.MissionEventDistributor;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
|
||||
/**
|
||||
* @author lvxinran
|
||||
* @date 2019/11/20
|
||||
* @discribe 更改其他用户任务线程
|
||||
*/
|
||||
public class AynMissionWorker implements AyncWorkerRunnable {
|
||||
GameEvent event;
|
||||
Object[] param;
|
||||
public void work(User user) throws Exception {
|
||||
boolean isOnline = OnlineUserManager.checkUidOnline(user.getId());
|
||||
MissionEventDistributor.requestStart();
|
||||
user.getUserMissionManager().onGameEvent(user, event, param);
|
||||
if (isOnline) {
|
||||
ISession session = OnlineUserManager.getSessionByUid(user.getId());
|
||||
MissionEventDistributor.requestEnd(session, true);
|
||||
}
|
||||
MongoUtil.getInstence().lastUpdate();
|
||||
}
|
||||
public AynMissionWorker(GameEvent event,Object... param){
|
||||
this.event = event;
|
||||
this.param = param;
|
||||
}
|
||||
}
|
||||
|
|
@ -28,4 +28,8 @@ public class AyyncWorker{
|
|||
public void setTask(boolean task) {
|
||||
isTask = task;
|
||||
}
|
||||
|
||||
public User getUser() {
|
||||
return user;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue