增加监控其他批处理异常情况定时任务

pull/520/head
dorion 2024-05-16 22:14:00 +08:00
parent e9cfc770c5
commit fe8ee67030
8 changed files with 109 additions and 10 deletions

View File

@ -147,7 +147,7 @@
</plugin> --> </plugin> -->
</plugins> </plugins>
<finalName>${project.artifactId}</finalName> <finalName>${project.artifactId}</finalName>
<!-- <resources> <resources>
<resource> <resource>
<directory>src/main/resources</directory> <directory>src/main/resources</directory>
<excludes> <excludes>
@ -155,7 +155,7 @@
<exclude>*.xml</exclude> <exclude>*.xml</exclude>
</excludes> </excludes>
</resource> </resource>
</resources>--> </resources>
</build> </build>

View File

@ -61,4 +61,6 @@ public interface SysJobLogMapper
* *
*/ */
public void cleanJobLog(); public void cleanJobLog();
Integer countJobLog(SysJobLog sysJobLogExample);
} }

View File

@ -1,8 +1,9 @@
package com.ruoyi.quartz.service; package com.ruoyi.quartz.service;
import java.util.List;
import com.ruoyi.quartz.domain.SysJobLog; import com.ruoyi.quartz.domain.SysJobLog;
import java.util.List;
/** /**
* *
* *
@ -53,4 +54,6 @@ public interface ISysJobLogService
* *
*/ */
public void cleanJobLog(); public void cleanJobLog();
Integer countJobLog(SysJobLog sysJobLogExample);
} }

View File

@ -1,12 +1,13 @@
package com.ruoyi.quartz.service.impl; package com.ruoyi.quartz.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.core.text.Convert;
import com.ruoyi.quartz.domain.SysJobLog; import com.ruoyi.quartz.domain.SysJobLog;
import com.ruoyi.quartz.mapper.SysJobLogMapper; import com.ruoyi.quartz.mapper.SysJobLogMapper;
import com.ruoyi.quartz.service.ISysJobLogService; import com.ruoyi.quartz.service.ISysJobLogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/** /**
* *
@ -85,4 +86,9 @@ public class SysJobLogServiceImpl implements ISysJobLogService
{ {
jobLogMapper.cleanJobLog(); jobLogMapper.cleanJobLog();
} }
@Override
public Integer countJobLog(SysJobLog sysJobLogExample) {
return jobLogMapper.countJobLog(sysJobLogExample);
}
} }

View File

@ -0,0 +1,62 @@
package com.ruoyi.quartz.task;
import cn.hutool.core.date.DateUtil;
import com.ruoyi.common.core.domain.entity.ErrorLog;
import com.ruoyi.quartz.domain.SysJob;
import com.ruoyi.quartz.domain.SysJobLog;
import com.ruoyi.quartz.service.ISysJobLogService;
import com.ruoyi.quartz.service.ISysJobService;
import com.ruoyi.system.service.IErrorLogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
@Component(value = "monitorTimerTaskStatusTask")
public class MonitorTimerTaskStatusTask {
@Autowired
private ISysJobService sysJobService;
@Autowired
private ISysJobLogService sysJobLogService;
@Autowired
private IErrorLogService errorLogService;
public void doMonitorTimerTaskStatus() {
SysJob sysJobExample = new SysJob();
List<SysJob> sysJobs = sysJobService.selectJobList(sysJobExample);
for (SysJob sysJob : sysJobs) {
//0=正常,1=暂停
if ("1".equals(sysJob.getStatus())) {
continue;
}
if (104 == sysJob.getJobId() || 103 == sysJob.getJobId() || 106 == sysJob.getJobId()) {
continue;
}
SysJobLog sysJobLogExample = new SysJobLog();
sysJobLogExample.setJobName(sysJob.getJobName());
sysJobLogExample.setCreateTime(DateUtil.offsetMinute(new Date(), -5));
Integer count = sysJobLogService.countJobLog(sysJobLogExample);
if (count == 0) {
ErrorLog errorLog = ErrorLog.builder()
.address(sysJob.getJobName())
.errorCode("定时任务调度异常")
.errorMsg("定时任务调度异常")
.fcu("system")
.lcu("system").build();
errorLogService.insertErrorLog(errorLog);
}
}
}
}

View File

@ -91,4 +91,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
) )
</insert> </insert>
</mapper> <select id="countJobLog" resultType="java.lang.Integer">
select count(1) from sys_job_log s where s.create_time &gt;= #{createTime}
and s.job_name = #{jobName}
</select>
</mapper>

View File

@ -4,11 +4,12 @@ import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.telegram.telegrambots.bots.TelegramLongPollingBot; import org.telegram.telegrambots.bots.TelegramLongPollingBot;
import org.telegram.telegrambots.meta.api.objects.Update; import org.telegram.telegrambots.meta.api.objects.Update;
import org.telegram.telegrambots.meta.exceptions.TelegramApiException; import org.telegram.telegrambots.meta.exceptions.TelegramApiException;
//@Component @Component
@Slf4j @Slf4j
public class TgLongPollingBot extends TelegramLongPollingBot { public class TgLongPollingBot extends TelegramLongPollingBot {

View File

@ -223,7 +223,6 @@ public class TRX2EneryTransferHandler {
@Transactional @Transactional
public void doDelegateResource(Contract contract, String txID, MonitorAddressAccount monitorAddressAccount) throws Exception { public void doDelegateResource(Contract contract, String txID, MonitorAddressAccount monitorAddressAccount) throws Exception {
Value value = contract.getParameter().getValue(); Value value = contract.getParameter().getValue();
//转账金额需除以10的6次方精度 //转账金额需除以10的6次方精度
long amountSun = value.getAmount(); long amountSun = value.getAmount();
@ -294,7 +293,27 @@ public class TRX2EneryTransferHandler {
String apiKey = monitorAddressAccount.getApiKey(); String apiKey = monitorAddressAccount.getApiKey();
String decryptPrivateKey = Dt.decrypt(encryptPrivateKey, encryptKey); String decryptPrivateKey = Dt.decrypt(encryptPrivateKey, encryptKey);
ApiWrapper apiWrapper = ApiWrapper.ofMainnet(decryptPrivateKey, apiKey);
ApiWrapper apiWrapper = null;
try {
apiWrapper = ApiWrapper.ofMainnet(decryptPrivateKey, apiKey);
} catch (Exception e) {
String exceptionString = LogUtils.doRecursiveReversePrintStackCause(e, 5, ForwardCounter.builder().count(0).build(), 5);
// log.error("获取交易列表异常:{}", exceptionString);
log.error("ofMainnet业务处理异常{},txid:{},exception:{}", monitorAddressAccount.getMonitorAddress(), txID, e);
ErrorLog errorLog = ErrorLog.builder()
.address(monitorAddressAccount.getMonitorAddress())
.trxId(txID)
.errorCode("ofMainnet")
.errorMsg(exceptionString.length() > 2000 ? exceptionString.substring(0, 2000) : exceptionString)
.fcu("system")
.lcu("system").build();
errorLogService.insertErrorLog(errorLog);
throw new RuntimeException(e);
}
calcBalanceAndDelegate(txID, apiWrapper, accountAddress, transferCount, ownerAddress, lockPeriod, toAddress, price, sysEnergyBusiType, amount, "system"); calcBalanceAndDelegate(txID, apiWrapper, accountAddress, transferCount, ownerAddress, lockPeriod, toAddress, price, sysEnergyBusiType, amount, "system");