[Add] BotAdminCommandProcess, PixivDownload 增加日志输出内容;

[Change] RandomIntervalSendTimer 对AutoSender增加异常捕获以减少对其他Timer执行的影响;
This commit is contained in:
LamGC 2020-04-25 17:02:01 +08:00
parent aaa1bc932b
commit 410d6c0828
3 changed files with 11 additions and 4 deletions

View File

@ -265,12 +265,13 @@ public class BotAdminCommandProcess {
pageQuality pageQuality
); );
RandomIntervalSendTimer.createTimer( RandomIntervalSendTimer timer = RandomIntervalSendTimer.createTimer(
id, id,
sender, sender,
setting.get("time.min").getAsLong(), setting.get("time.min").getAsLong(),
setting.get("time.float").getAsInt(), setting.get("time.float").getAsInt(),
true, true); true, true);
log.info("群组 {} 已创建对应Timer: {}", id, Integer.toHexString(timer.hashCode()));
} }
/** /**

View File

@ -1,5 +1,6 @@
package net.lamgc.cgj.bot; package net.lamgc.cgj.bot;
import com.google.common.base.Throwables;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@ -120,7 +121,11 @@ public class RandomIntervalSendTimer extends TimerTask {
@Override @Override
public void run() { public void run() {
try {
sender.send(); sender.send();
} catch (Exception e) {
log.error("定时器 {} 执行时发生异常:\n{}", Integer.toHexString(this.hashCode()), Throwables.getStackTraceAsString(e));
}
if (this.loop.get()) { if (this.loop.get()) {
start(); start();
} }

View File

@ -319,12 +319,13 @@ public class PixivDownload {
HttpGet request = createHttpGetRequest(PixivURL.getRankingLink(contentType, mode, time, pageIndex, true)); HttpGet request = createHttpGetRequest(PixivURL.getRankingLink(contentType, mode, time, pageIndex, true));
log.debug("RequestUri: {}", request.getURI()); log.debug("RequestUri: {}", request.getURI());
HttpResponse response = httpClient.execute(request); HttpResponse response = httpClient.execute(request);
String responseBody = EntityUtils.toString(response.getEntity());
log.debug("ResponseBody: {}", responseBody);
if(response.getStatusLine().getStatusCode() != 200) { if(response.getStatusLine().getStatusCode() != 200) {
throw new IOException("Http Response Error: " + response.getStatusLine()); throw new IOException("Http Response Error: " + response.getStatusLine());
} }
JsonArray resultArray = gson.fromJson(EntityUtils.toString(response.getEntity()), JsonObject.class).getAsJsonArray("contents"); JsonArray resultArray = gson.fromJson(responseBody, JsonObject.class).getAsJsonArray("contents");
for (int resultIndex = startIndex; resultIndex < resultArray.size() && count < range; resultIndex++, count++) { for (int resultIndex = startIndex; resultIndex < resultArray.size() && count < range; resultIndex++, count++) {
results.add(resultArray.get(resultIndex).getAsJsonObject()); results.add(resultArray.get(resultIndex).getAsJsonObject());
} }