From dbfed874c07d8b4f175dc53ab4235392fb660839 Mon Sep 17 00:00:00 2001 From: LamGC Date: Sat, 18 Apr 2020 01:15:04 +0800 Subject: [PATCH] =?UTF-8?q?[Add]=20VirtualLoadMessageEvent=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=81=87=E8=B4=9F=E8=BD=BD=E6=B6=88=E6=81=AF=E4=BA=8B?= =?UTF-8?q?=E4=BB=B6,=20=E8=AF=A5=E4=BA=8B=E4=BB=B6=E5=9C=A8=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E5=8F=91=E9=80=81=E4=B8=8A=E5=B0=86=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E6=93=8D=E4=BD=9C,=20=E7=BA=AF=E5=B1=9E=E6=89=A7=E8=A1=8C?= =?UTF-8?q?=E5=91=BD=E4=BB=A4;=20[Change]=20RankingUpdateTimer=20=E8=B0=83?= =?UTF-8?q?=E6=95=B4=E6=8E=92=E8=A1=8C=E6=A6=9C=E6=9B=B4=E6=96=B0=E6=96=B9?= =?UTF-8?q?=E5=BC=8F,=20=E5=88=A9=E7=94=A8=E5=81=87=E8=B4=9F=E8=BD=BD?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E8=A7=A6=E5=8F=91=E4=B8=80=E6=AC=A1=E5=AE=8C?= =?UTF-8?q?=E5=85=A8=E6=89=A7=E8=A1=8C;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../net/lamgc/cgj/bot/RankingUpdateTimer.java | 14 +++++++----- .../bot/event/VirtualLoadMessageEvent.java | 22 +++++++++++++++++++ 2 files changed, 31 insertions(+), 5 deletions(-) create mode 100644 src/main/java/net/lamgc/cgj/bot/event/VirtualLoadMessageEvent.java diff --git a/src/main/java/net/lamgc/cgj/bot/RankingUpdateTimer.java b/src/main/java/net/lamgc/cgj/bot/RankingUpdateTimer.java index 4fa7e8c..51bf298 100644 --- a/src/main/java/net/lamgc/cgj/bot/RankingUpdateTimer.java +++ b/src/main/java/net/lamgc/cgj/bot/RankingUpdateTimer.java @@ -1,10 +1,12 @@ package net.lamgc.cgj.bot; +import com.google.common.base.Throwables; +import net.lamgc.cgj.bot.event.BotEventHandler; +import net.lamgc.cgj.bot.event.VirtualLoadMessageEvent; import net.lamgc.cgj.pixiv.PixivURL; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.IOException; import java.time.LocalDate; import java.util.Calendar; import java.util.Date; @@ -65,11 +67,13 @@ public class RankingUpdateTimer { } log.info("当前排行榜类型: {}.{}, 正在更新...", rankingMode.name(), contentType.name()); try { - BotCommandProcess.getRankingInfoByCache(contentType, rankingMode, calendar.getTime(), 1, 0, true); + //BotCommandProcess.getRankingInfoByCache(contentType, rankingMode, calendar.getTime(), 1, 0, true); + BotEventHandler.executor.executorSync( + new VirtualLoadMessageEvent(0,0, + ".cgj ranking -type " + rankingMode.modeParam + " -mode " + rankingMode.modeParam)); log.info("排行榜 {}.{} 更新完成.", rankingMode.name(), contentType.name()); - } catch (IOException e) { - log.error("排行榜 {}.{} 更新时发生异常", rankingMode.name(), contentType.name()); - log.error("异常信息如下", e); + } catch (InterruptedException e) { + log.error("排行榜 {}.{} 更新时发生异常. \n{}", rankingMode.name(), contentType.name(), Throwables.getStackTraceAsString(e)); } } } diff --git a/src/main/java/net/lamgc/cgj/bot/event/VirtualLoadMessageEvent.java b/src/main/java/net/lamgc/cgj/bot/event/VirtualLoadMessageEvent.java new file mode 100644 index 0000000..9523064 --- /dev/null +++ b/src/main/java/net/lamgc/cgj/bot/event/VirtualLoadMessageEvent.java @@ -0,0 +1,22 @@ +package net.lamgc.cgj.bot.event; + +/** + * 假负载消息事件, 一般用于预处理某个命令使用,可以增强在高峰期来临时的处理速度. + */ +public class VirtualLoadMessageEvent extends MessageEvent { + + public VirtualLoadMessageEvent(long fromGroup, long fromQQ, String message) { + super(fromGroup, fromQQ, message); + } + + @Override + public int sendMessage(String message) { + return 0; + } + + @Override + public String getImageUrl(String image) { + return null; + } + +}