mirror of
https://github.com/luoye663/e5.git
synced 2024-12-26 03:38:53 +00:00
连续错误检测
This commit is contained in:
parent
d1147a4b8b
commit
13bd6394a6
33
src/main/java/io/qyi/e5/config/Start.java
Normal file
33
src/main/java/io/qyi/e5/config/Start.java
Normal file
@ -0,0 +1,33 @@
|
||||
package io.qyi.e5.config;
|
||||
|
||||
import io.qyi.e5.service.task.ITask;
|
||||
import io.qyi.e5.util.redis.RedisUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
|
||||
/**
|
||||
* @program: e5
|
||||
* @description:
|
||||
* @author: 落叶随风
|
||||
* @create: 2020-10-12 16:58
|
||||
**/
|
||||
@Component
|
||||
@Slf4j
|
||||
public class Start {
|
||||
@Autowired
|
||||
RedisUtil redisUtil;
|
||||
@Autowired
|
||||
ITask Task;
|
||||
|
||||
@PostConstruct
|
||||
public void initRedis() {
|
||||
log.info("清空redis...... ");
|
||||
redisUtil.delAll();
|
||||
/* log.info("重新添加队列...... ");
|
||||
Task.sendTaskOutlookMQALL();*/
|
||||
|
||||
}
|
||||
}
|
@ -12,6 +12,7 @@ import org.springframework.amqp.core.MessageProperties;
|
||||
import org.springframework.amqp.rabbit.connection.CorrelationData;
|
||||
import org.springframework.amqp.rabbit.core.RabbitTemplate;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@ -41,6 +42,9 @@ public class TaskImpl implements ITask {
|
||||
@Autowired
|
||||
IOutlookLogService outlookLogService;
|
||||
|
||||
@Value("${outlook.error.countMax}")
|
||||
int errorCountMax;
|
||||
|
||||
@Override
|
||||
@Async
|
||||
public void sendTaskOutlookMQ(int github_id) {
|
||||
@ -83,15 +87,31 @@ public class TaskImpl implements ITask {
|
||||
return false;
|
||||
}
|
||||
boolean isExecuteE5 ;
|
||||
String errorKey = "user.mq:" + github_id + ":error";
|
||||
try {
|
||||
int mail_count = outlookService.getMailList(Outlook);
|
||||
outlookLogService.addLog(github_id, "ok", 1, "读取邮件数量:" + mail_count);
|
||||
if (redisUtil.hasKey(errorKey)) {
|
||||
redisUtil.del(errorKey);
|
||||
}
|
||||
isExecuteE5 = true;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
outlookLogService.addLog(github_id, "error", 0, e.getMessage());
|
||||
outlookLogService.addLog(github_id, "error", 0, "检测到错误,下次将不再自动调用,请修正错误后再授权开启续订。" );
|
||||
isExecuteE5 = false;
|
||||
/*连续错误判断*/
|
||||
if (!redisUtil.hasKey(errorKey)) {
|
||||
redisUtil.set(errorKey, 1);
|
||||
isExecuteE5 = true;
|
||||
} else {
|
||||
int error_count = (int)redisUtil.get(errorKey);
|
||||
if (error_count >= errorCountMax) {
|
||||
outlookLogService.addLog(github_id, "error", 0, e.getMessage());
|
||||
outlookLogService.addLog(github_id, "error", 0, "检测到3次连续错误,下次将不再自动调用,请修正错误后再授权开启续订。");
|
||||
isExecuteE5 = false;
|
||||
} else {
|
||||
redisUtil.incr(errorKey, 1);
|
||||
isExecuteE5 = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return isExecuteE5;
|
||||
}
|
||||
|
@ -51,11 +51,12 @@ public class RedisUtil {
|
||||
|
||||
/**
|
||||
* 删除所有键值对
|
||||
*
|
||||
* @throws
|
||||
* @title deleteALl
|
||||
* @description
|
||||
* @author 落叶随风
|
||||
* @updateTime 2020/4/22 22:53
|
||||
* @throws
|
||||
*/
|
||||
public void deleteALL() {
|
||||
Set<String> keys = redisTemplate.keys("*");
|
||||
@ -581,7 +582,9 @@ public class RedisUtil {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws
|
||||
* @title lRemove
|
||||
* @description
|
||||
* @author 落叶随风
|
||||
@ -590,11 +593,10 @@ public class RedisUtil {
|
||||
* @param: value
|
||||
* @updateTime 2020/2/4 14:59
|
||||
* @return: long
|
||||
* @throws
|
||||
*/
|
||||
public boolean lTrim(String key, long start, long end) {
|
||||
try {
|
||||
redisTemplate.opsForList().trim(key,start,end);
|
||||
redisTemplate.opsForList().trim(key, start, end);
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
@ -602,4 +604,12 @@ public class RedisUtil {
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
public void reName(String old, String new_key) {
|
||||
redisTemplate.rename(old, new_key);
|
||||
}
|
||||
|
||||
public void delAll() {
|
||||
Set<String> keys = redisTemplate.keys("*");
|
||||
redisTemplate.delete(keys);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user