fix gm
parent
e5578dbab3
commit
63a587862c
|
@ -30,7 +30,7 @@ public class Cmd_changename extends GmRoleAbstract {
|
||||||
if(args.length>=2){
|
if(args.length>=2){
|
||||||
User user = getUser();
|
User user = getUser();
|
||||||
if("hotfix".equals(args[2])){
|
if("hotfix".equals(args[2])){
|
||||||
|
LOGGER.info("hotfix user={},thread={}",user.getId(),Thread.currentThread().getName());
|
||||||
MongoUtil.getLjsdMongoTemplate().save(user);
|
MongoUtil.getLjsdMongoTemplate().save(user);
|
||||||
}
|
}
|
||||||
if("force".equals(args[2])){
|
if("force".equals(args[2])){
|
||||||
|
|
|
@ -7,6 +7,8 @@ import com.ljsd.jieling.network.server.ProtocolsManager;
|
||||||
import com.ljsd.jieling.thread.ThreadManager;
|
import com.ljsd.jieling.thread.ThreadManager;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.concurrent.ExecutorService;
|
||||||
|
import java.util.concurrent.Executors;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
public class InnerMessageUtil {
|
public class InnerMessageUtil {
|
||||||
|
@ -20,18 +22,45 @@ public class InnerMessageUtil {
|
||||||
/**
|
/**
|
||||||
* 通知所有在线玩家 随机时间 /s
|
* 通知所有在线玩家 随机时间 /s
|
||||||
*/
|
*/
|
||||||
public static void broadcastWithRandom(AyyncWorker ayyncWorker, List<Integer> sendId, int timeBound) {
|
public static void broadcastWithRandom(AyyncWorker ayyncWorker, List<Integer> sendId, int timeBound) throws InterruptedException {
|
||||||
for (Integer id : sendId) {
|
|
||||||
ThreadManager.getScheduledExecutor().schedule(() -> {
|
ExecutorService executorService = Executors.newFixedThreadPool(1);
|
||||||
|
executorService.execute(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
try {
|
try {
|
||||||
ayyncWorker.setTask(true);
|
int lastUid=0;
|
||||||
ayyncWorker.setUser(UserManager.getUser(id));
|
for (Integer id : sendId) {
|
||||||
ProtocolsManager instance = ProtocolsManager.getInstance();
|
User userInMem = UserManager.getUserInMem(id);
|
||||||
HandlerLogicThread handlerThread = instance.handlerThreads[id % instance.HANDLER_THREAD_NUM];
|
if(userInMem == null){
|
||||||
handlerThread.addAyyncWorker(ayyncWorker);
|
continue;
|
||||||
}catch (Exception e){}
|
}
|
||||||
}, MathUtils.randomInt(timeBound), TimeUnit.SECONDS);
|
ProtocolsManager instance = ProtocolsManager.getInstance();
|
||||||
}
|
if(lastUid!=0){
|
||||||
|
HandlerLogicThread handlerThread = instance.handlerThreads[lastUid % instance.HANDLER_THREAD_NUM];
|
||||||
|
int retryTimes = 30;
|
||||||
|
while ( !handlerThread.ayyncWorkerConcurrentLinkedQueue.isEmpty()){
|
||||||
|
Thread.sleep(50);
|
||||||
|
retryTimes--;
|
||||||
|
if(retryTimes<0){
|
||||||
|
System.out.println("fail fail ---------------------->>>>>fail..");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Thread.sleep(50);
|
||||||
|
}
|
||||||
|
HandlerLogicThread handlerThread = instance.handlerThreads[id % instance.HANDLER_THREAD_NUM];
|
||||||
|
ayyncWorker.setTask(true);
|
||||||
|
ayyncWorker.setUser(userInMem);
|
||||||
|
handlerThread.addAyyncWorker(ayyncWorker);
|
||||||
|
lastUid =id;
|
||||||
|
}
|
||||||
|
}catch (Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue