86 lines
3.8 KiB
Java
86 lines
3.8 KiB
Java
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', ' ');
|
||
}
|
||
}
|