公会检测修改

back_recharge
lvxinran 2021-01-27 16:19:33 +08:00
parent ef472bdbd2
commit f8e47dd12b
5 changed files with 56 additions and 4 deletions

View File

@ -34,6 +34,7 @@ public class ThreadManager implements IManager {
private static Set<Future<?>> scheduledFutureSets = new HashSet<>();
private static volatile ScheduledThreadPoolExecutor scheduledExecutor; //管理task
private static volatile ThreadPoolExecutor executor;//用于异步处理服务器流程 例如发奖 处理每日公会 这种任务
public void init() {
@ -52,6 +53,7 @@ public class ThreadManager implements IManager {
scheduledExecutor = new ScheduledThreadPoolExecutor(8, new ScheduleThreadFactory());
scheduledExecutor.setExecuteExistingDelayedTasksAfterShutdownPolicy(false);
scheduledExecutor.setContinueExistingPeriodicTasksAfterShutdownPolicy(false);
executor = (ThreadPoolExecutor)Executors.newFixedThreadPool(4);
go();
}
@ -151,4 +153,8 @@ public class ThreadManager implements IManager {
go();
}
public static void commitGeneralTask(GeneralTask task){
executor.execute(task);
}
}

View File

@ -1,7 +1,7 @@
package com.ljsd.jieling.thread.task;
@FunctionalInterface
public interface GeneralTask {
public interface GeneralTask extends Runnable{
void run();

View File

@ -1,10 +1,13 @@
package com.ljsd.jieling.thread.task;
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.UserManager;
import com.ljsd.jieling.logic.dao.root.GuildInfo;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.mail.MailLogic;
import config.SErrorCodeEerverConfig;
import util.TimeUtils;
import java.util.Iterator;
@ -17,12 +20,12 @@ import java.util.concurrent.TimeUnit;
* @date 2021/1/27
* @discribe
*/
public class GuildchangeTask implements GeneralTask{
public class GuildChangeTask implements GeneralTask{
private Set<Integer> chairmanChangeGuilds;
private Set<Integer> releaseGuilds;
public GuildchangeTask(Set<Integer> chairmanChangeGuilds, Set<Integer> releaseGuilds) {
public GuildChangeTask(Set<Integer> chairmanChangeGuilds, Set<Integer> releaseGuilds) {
this.chairmanChangeGuilds = chairmanChangeGuilds;
this.releaseGuilds = releaseGuilds;
}
@ -58,6 +61,45 @@ public class GuildchangeTask implements GeneralTask{
guildInfo.addMembers(GlobalsDef.CHAIRMAN,compareValue.getUid());
guildInfo.removeMember(type,compareValue.getUid());
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();
}
}
}

View File

@ -1,7 +1,6 @@
package com.ljsd.jieling.thread.task;
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.UserManager;
import com.ljsd.jieling.logic.dao.root.GuildInfo;
@ -94,5 +93,7 @@ public class GuildCheckOfflineTask implements GeneralTask {
}
releaseGuilds.add(entry.getKey());
}
ThreadManager.commitGeneralTask(new GuildChangeTask(chairmanChangeGuilds,releaseGuilds));
}
}

View File

@ -38,6 +38,7 @@ import com.ljsd.jieling.logic.question.QuestionLogic;
import com.ljsd.jieling.logic.store.BuyGoodsLogic;
import com.ljsd.jieling.logic.store.StoreLogic;
import com.ljsd.jieling.network.server.ProtocolsManager;
import com.ljsd.jieling.thread.ThreadManager;
import com.ljsd.jieling.util.MessageUtil;
import io.netty.util.internal.PlatformDependent;
import manager.STableManager;
@ -232,7 +233,9 @@ public class MinuteTask extends Thread {
LOGGER.info("DailyOfFiveTask start ...");
GlobalDataManaager.everTask(0);
ThreadManager.commitGeneralTask(new GuildCheckOfflineTask());
LOGGER.info("DailyOfFiveTask end ...");
}
}