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