|
@@ -2,11 +2,13 @@ package com.fjhx.email.service.impl;
|
|
|
|
|
|
import cn.hutool.core.date.DateTime;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
+import cn.hutool.core.io.IORuntimeException;
|
|
|
import cn.hutool.core.thread.ThreadUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.alibaba.fastjson2.JSON;
|
|
|
import com.fjhx.email.config.TaskPoolConfig;
|
|
|
import com.fjhx.email.config.base.BaseEntity;
|
|
|
+import com.fjhx.email.config.exception.ServiceException;
|
|
|
import com.fjhx.email.entity.*;
|
|
|
import com.fjhx.email.entity.dto.MailFolderInfo;
|
|
|
import com.fjhx.email.entity.dto.MailInfo;
|
|
@@ -14,6 +16,7 @@ import com.fjhx.email.entity.dto.MailSyncInfo;
|
|
|
import com.fjhx.email.entity.dto.MailboxInfo;
|
|
|
import com.fjhx.email.service.*;
|
|
|
import com.fjhx.email.utils.EmailUtil;
|
|
|
+import com.fjhx.email.utils.HxHttpUtil;
|
|
|
import com.sun.mail.imap.IMAPMessage;
|
|
|
import com.sun.mail.imap.IMAPStore;
|
|
|
import com.sun.mail.util.MailConnectException;
|
|
@@ -91,7 +94,25 @@ public class CoreServiceImpl implements ApplicationRunner {
|
|
|
@Override
|
|
|
public void run(ApplicationArguments args) {
|
|
|
|
|
|
+ try {
|
|
|
+ List<Long> onlineUserIdList = HxHttpUtil.getOnlineUserIdList();
|
|
|
|
|
|
+ } catch (IORuntimeException e) {
|
|
|
+ log.error("获取主服务在线用户超时");
|
|
|
+ ThreadUtil.sleep(1000 * 5);
|
|
|
+ run(args);
|
|
|
+ return;
|
|
|
+ } catch (ServiceException e) {
|
|
|
+ log.error("主服务返回信息错误:{}", e.getMessage());
|
|
|
+ ThreadUtil.sleep(1000 * 5);
|
|
|
+ run(args);
|
|
|
+ return;
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("解析错误", e);
|
|
|
+ ThreadUtil.sleep(1000 * 5);
|
|
|
+ run(args);
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
// 发起邮件同步
|
|
|
new Thread(this::monitorMail).start();
|
|
@@ -118,6 +139,11 @@ public class CoreServiceImpl implements ApplicationRunner {
|
|
|
List<MailboxInfo> mailboxInfoList = new ArrayList<>(MailSyncInfo.mailboxInfoList);
|
|
|
int mailboxSize = mailboxInfoList.size();
|
|
|
|
|
|
+ if (mailboxSize == 0) {
|
|
|
+ ThreadUtil.sleep(MailSyncInfo.minWaitingTime);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
// 开始处理时间
|
|
|
long start = System.currentTimeMillis();
|
|
|
|