feat: Implement external job import logging functionality with independent log files
This commit is contained in:
@@ -6,14 +6,18 @@ import com.ruoyi.cms.service.ICompanyService;
|
||||
import com.ruoyi.cms.service.IESJobSearchService;
|
||||
import com.ruoyi.cms.service.IJobService;
|
||||
import com.ruoyi.cms.service.IJobTitleSuggestService;
|
||||
import com.ruoyi.cms.externalimport.ExternalJobImportProperties;
|
||||
import com.ruoyi.cms.externalimport.ExternalJobImportResult;
|
||||
import com.ruoyi.cms.externalimport.ExternalJobImportRunLog;
|
||||
import com.ruoyi.cms.externalimport.IExternalJobImportService;
|
||||
import com.ruoyi.common.utils.spring.SpringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
|
||||
public class JobCron {
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(JobCron.class);
|
||||
|
||||
public void isHot(){
|
||||
SpringUtils.getBean(JobMapper.class).isHot();
|
||||
}
|
||||
@@ -39,9 +43,43 @@ public class JobCron {
|
||||
|
||||
/**
|
||||
* 外部 Excel 全量快照同步。
|
||||
* Quartz 调用目标:jobCron.importLatestExternalSnapshot()
|
||||
* Quartz 调用目标:com.ruoyi.cms.cron.JobCron.importLatestExternalSnapshot()
|
||||
*/
|
||||
public void importLatestExternalSnapshot(){
|
||||
SpringUtils.getBean(IExternalJobImportService.class).importLatest();
|
||||
ExternalJobImportProperties properties = SpringUtils.getBean(ExternalJobImportProperties.class);
|
||||
ExternalJobImportRunLog runLog = ExternalJobImportRunLog.open(properties.getRunLogDirectory());
|
||||
LOGGER.info("外部岗位全量同步开始,runId={},独立日志={}", runLog.getRunId(), runLog.getFile());
|
||||
try {
|
||||
runLog.info("开始执行外部岗位 Excel 全量快照同步");
|
||||
ExternalJobImportResult result = SpringUtils.getBean(IExternalJobImportService.class).importLatest();
|
||||
runLog.info("执行完成;status=" + result.getStatus()
|
||||
+ ";batchId=" + safe(result.getBatchId())
|
||||
+ ";totalRows=" + result.getTotalRows()
|
||||
+ ";validRows=" + result.getValidRows()
|
||||
+ ";invalidRows=" + result.getInvalidRows()
|
||||
+ ";duplicateRows=" + result.getDuplicateRows()
|
||||
+ ";insertCount=" + result.getInsertCount()
|
||||
+ ";updateCount=" + result.getUpdateCount()
|
||||
+ ";keepCount=" + result.getKeepCount()
|
||||
+ ";restoreCount=" + result.getRestoreCount()
|
||||
+ ";deleteCount=" + result.getDeleteCount()
|
||||
+ ";message=" + safe(result.getMessage()));
|
||||
LOGGER.info("外部岗位全量同步结束,runId={},status={},batchId={}",
|
||||
runLog.getRunId(), result.getStatus(), result.getBatchId());
|
||||
} catch (RuntimeException ex) {
|
||||
runLog.error("执行失败", ex);
|
||||
LOGGER.error("外部岗位全量同步失败,runId={},独立日志={}", runLog.getRunId(), runLog.getFile(), ex);
|
||||
throw ex;
|
||||
} catch (Error error) {
|
||||
runLog.error("执行发生 JVM 错误", error);
|
||||
LOGGER.error("外部岗位全量同步发生 JVM 错误,runId={},独立日志={}", runLog.getRunId(), runLog.getFile(), error);
|
||||
throw error;
|
||||
} finally {
|
||||
runLog.close();
|
||||
}
|
||||
}
|
||||
|
||||
private String safe(String value) {
|
||||
return value == null ? "" : value.replace('\r', ' ').replace('\n', ' ');
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user