Files
shz-backend/ruoyi-bussiness/src/main/java/com/ruoyi/cms/cron/JobCron.java

86 lines
3.8 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.ruoyi.cms.cron;
import com.ruoyi.cms.mapper.JobMapper;
import com.ruoyi.cms.service.IBussinessOperLogService;
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.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();
}
public void resetEs(){
SpringUtils.getBean(IESJobSearchService.class).resetTextCache();
}
//查看索引是否存在,如果不存在,就更新
public void checkEsAndFix(){
SpringUtils.getBean(IESJobSearchService.class).checkEsAndFix();
}
//更新公司的招聘数量
public void updateJobCountOfCompany(){
SpringUtils.getBean(ICompanyService.class).updateJobCountOfCompany();
}
/**
* 重建岗位名称联想缓存。
* Quartz 任务调用目标jobCron.rebuildJobTitleSuggest()
*/
public void rebuildJobTitleSuggest(){
SpringUtils.getBean(IJobTitleSuggestService.class).rebuildCache();
}
/**
* 外部 Excel 全量快照同步。
* Quartz 调用目标com.ruoyi.cms.cron.JobCron.importLatestExternalSnapshot()
*/
public void importLatestExternalSnapshot(){
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', ' ');
}
}