公会检测修改
parent
ef472bdbd2
commit
f8e47dd12b
|
@ -34,6 +34,7 @@ public class ThreadManager implements IManager {
|
||||||
private static Set<Future<?>> scheduledFutureSets = new HashSet<>();
|
private static Set<Future<?>> scheduledFutureSets = new HashSet<>();
|
||||||
|
|
||||||
private static volatile ScheduledThreadPoolExecutor scheduledExecutor; //管理task
|
private static volatile ScheduledThreadPoolExecutor scheduledExecutor; //管理task
|
||||||
|
private static volatile ThreadPoolExecutor executor;//用于异步处理服务器流程 例如发奖 处理每日公会 这种任务
|
||||||
|
|
||||||
public void init() {
|
public void init() {
|
||||||
|
|
||||||
|
@ -52,6 +53,7 @@ public class ThreadManager implements IManager {
|
||||||
scheduledExecutor = new ScheduledThreadPoolExecutor(8, new ScheduleThreadFactory());
|
scheduledExecutor = new ScheduledThreadPoolExecutor(8, new ScheduleThreadFactory());
|
||||||
scheduledExecutor.setExecuteExistingDelayedTasksAfterShutdownPolicy(false);
|
scheduledExecutor.setExecuteExistingDelayedTasksAfterShutdownPolicy(false);
|
||||||
scheduledExecutor.setContinueExistingPeriodicTasksAfterShutdownPolicy(false);
|
scheduledExecutor.setContinueExistingPeriodicTasksAfterShutdownPolicy(false);
|
||||||
|
executor = (ThreadPoolExecutor)Executors.newFixedThreadPool(4);
|
||||||
go();
|
go();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -151,4 +153,8 @@ public class ThreadManager implements IManager {
|
||||||
go();
|
go();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void commitGeneralTask(GeneralTask task){
|
||||||
|
executor.execute(task);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package com.ljsd.jieling.thread.task;
|
package com.ljsd.jieling.thread.task;
|
||||||
|
|
||||||
@FunctionalInterface
|
@FunctionalInterface
|
||||||
public interface GeneralTask {
|
public interface GeneralTask extends Runnable{
|
||||||
|
|
||||||
void run();
|
void run();
|
||||||
|
|
||||||
|
|
|
@ -1,10 +1,13 @@
|
||||||
package com.ljsd.jieling.thread.task;
|
package com.ljsd.jieling.thread.task;
|
||||||
|
|
||||||
import com.ljsd.jieling.core.GlobalsDef;
|
import com.ljsd.jieling.core.GlobalsDef;
|
||||||
|
import com.ljsd.jieling.globals.Global;
|
||||||
import com.ljsd.jieling.logic.dao.GuilidManager;
|
import com.ljsd.jieling.logic.dao.GuilidManager;
|
||||||
import com.ljsd.jieling.logic.dao.UserManager;
|
import com.ljsd.jieling.logic.dao.UserManager;
|
||||||
import com.ljsd.jieling.logic.dao.root.GuildInfo;
|
import com.ljsd.jieling.logic.dao.root.GuildInfo;
|
||||||
import com.ljsd.jieling.logic.dao.root.User;
|
import com.ljsd.jieling.logic.dao.root.User;
|
||||||
|
import com.ljsd.jieling.logic.mail.MailLogic;
|
||||||
|
import config.SErrorCodeEerverConfig;
|
||||||
import util.TimeUtils;
|
import util.TimeUtils;
|
||||||
|
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
@ -17,12 +20,12 @@ import java.util.concurrent.TimeUnit;
|
||||||
* @date 2021/1/27
|
* @date 2021/1/27
|
||||||
* @discribe
|
* @discribe
|
||||||
*/
|
*/
|
||||||
public class GuildchangeTask implements GeneralTask{
|
public class GuildChangeTask implements GeneralTask{
|
||||||
private Set<Integer> chairmanChangeGuilds;
|
private Set<Integer> chairmanChangeGuilds;
|
||||||
|
|
||||||
private Set<Integer> releaseGuilds;
|
private Set<Integer> releaseGuilds;
|
||||||
|
|
||||||
public GuildchangeTask(Set<Integer> chairmanChangeGuilds, Set<Integer> releaseGuilds) {
|
public GuildChangeTask(Set<Integer> chairmanChangeGuilds, Set<Integer> releaseGuilds) {
|
||||||
this.chairmanChangeGuilds = chairmanChangeGuilds;
|
this.chairmanChangeGuilds = chairmanChangeGuilds;
|
||||||
this.releaseGuilds = releaseGuilds;
|
this.releaseGuilds = releaseGuilds;
|
||||||
}
|
}
|
||||||
|
@ -58,6 +61,45 @@ public class GuildchangeTask implements GeneralTask{
|
||||||
guildInfo.addMembers(GlobalsDef.CHAIRMAN,compareValue.getUid());
|
guildInfo.addMembers(GlobalsDef.CHAIRMAN,compareValue.getUid());
|
||||||
guildInfo.removeMember(type,compareValue.getUid());
|
guildInfo.removeMember(type,compareValue.getUid());
|
||||||
guildInfo.addMembers(GlobalsDef.MEMBER,chairMan);
|
guildInfo.addMembers(GlobalsDef.MEMBER,chairMan);
|
||||||
|
try {
|
||||||
|
User user = UserManager.getUser(compareValue.getUid());
|
||||||
|
//发送邮件 GuildLeaderPass_mail_title
|
||||||
|
String title = SErrorCodeEerverConfig.getI18NMessage("GuildLeaderPass_mail_title");
|
||||||
|
String content = SErrorCodeEerverConfig.getI18NMessage("GuildLeaderPass_mail_content", new Object[]{user.getPlayerInfoManager().getNickName()});
|
||||||
|
sendMailToGuild(guildInfo,title,content,(int)(now/1000));
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(releaseGuilds!=null&&releaseGuilds.size()>0){
|
||||||
|
Iterator<Integer> iterator = releaseGuilds.iterator();
|
||||||
|
while(iterator.hasNext()){
|
||||||
|
int next = iterator.next();
|
||||||
|
try {
|
||||||
|
//发邮件
|
||||||
|
GuildInfo guildInfo = guildInfoMap.get(next);
|
||||||
|
String title = SErrorCodeEerverConfig.getI18NMessage("GuildDismiss_mail_title");
|
||||||
|
String content = SErrorCodeEerverConfig.getI18NMessage("GuildDismiss_mail_content", new Object[]{guildInfo.getName()});
|
||||||
|
sendMailToGuild(guildInfo,title,content,(int)(now/1000));
|
||||||
|
GuilidManager.removeGuildInfo(guildInfo);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendMailToGuild(GuildInfo info,String title,String content,int sendTime){
|
||||||
|
Map<Integer, Set<Integer>> members = info.getMembers();
|
||||||
|
for(Map.Entry<Integer, Set<Integer>> entry:members.entrySet()){
|
||||||
|
for(int uid:entry.getValue()){
|
||||||
|
try {
|
||||||
|
MailLogic.getInstance().sendMail(uid,title,content,"",sendTime, Global.MAIL_EFFECTIVE_TIME);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,7 +1,6 @@
|
||||||
package com.ljsd.jieling.thread.task;
|
package com.ljsd.jieling.thread.task;
|
||||||
|
|
||||||
import com.ljsd.jieling.core.GlobalsDef;
|
import com.ljsd.jieling.core.GlobalsDef;
|
||||||
import com.ljsd.jieling.globals.Global;
|
|
||||||
import com.ljsd.jieling.logic.dao.GuilidManager;
|
import com.ljsd.jieling.logic.dao.GuilidManager;
|
||||||
import com.ljsd.jieling.logic.dao.UserManager;
|
import com.ljsd.jieling.logic.dao.UserManager;
|
||||||
import com.ljsd.jieling.logic.dao.root.GuildInfo;
|
import com.ljsd.jieling.logic.dao.root.GuildInfo;
|
||||||
|
@ -94,5 +93,7 @@ public class GuildCheckOfflineTask implements GeneralTask {
|
||||||
}
|
}
|
||||||
releaseGuilds.add(entry.getKey());
|
releaseGuilds.add(entry.getKey());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ThreadManager.commitGeneralTask(new GuildChangeTask(chairmanChangeGuilds,releaseGuilds));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,6 +38,7 @@ import com.ljsd.jieling.logic.question.QuestionLogic;
|
||||||
import com.ljsd.jieling.logic.store.BuyGoodsLogic;
|
import com.ljsd.jieling.logic.store.BuyGoodsLogic;
|
||||||
import com.ljsd.jieling.logic.store.StoreLogic;
|
import com.ljsd.jieling.logic.store.StoreLogic;
|
||||||
import com.ljsd.jieling.network.server.ProtocolsManager;
|
import com.ljsd.jieling.network.server.ProtocolsManager;
|
||||||
|
import com.ljsd.jieling.thread.ThreadManager;
|
||||||
import com.ljsd.jieling.util.MessageUtil;
|
import com.ljsd.jieling.util.MessageUtil;
|
||||||
import io.netty.util.internal.PlatformDependent;
|
import io.netty.util.internal.PlatformDependent;
|
||||||
import manager.STableManager;
|
import manager.STableManager;
|
||||||
|
@ -232,7 +233,9 @@ public class MinuteTask extends Thread {
|
||||||
|
|
||||||
|
|
||||||
LOGGER.info("DailyOfFiveTask start ...");
|
LOGGER.info("DailyOfFiveTask start ...");
|
||||||
|
|
||||||
GlobalDataManaager.everTask(0);
|
GlobalDataManaager.everTask(0);
|
||||||
|
ThreadManager.commitGeneralTask(new GuildCheckOfflineTask());
|
||||||
LOGGER.info("DailyOfFiveTask end ...");
|
LOGGER.info("DailyOfFiveTask end ...");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue