package com.java110.job.task; import com.java110.utils.factory.ApplicationContextFactory; import com.java110.utils.util.SpringBeanInvoker; import com.java110.job.dao.IHcFtpFileDAO; import com.java110.job.smo.HcFtpToFileSystemQuartz; import org.quartz.Job; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import java.util.HashMap; import java.util.Map; /** * * @author * */ public class HcFtpToFileSystemJob implements Job { private static final Logger logger = LoggerFactory.getLogger(HcFtpToFileSystemJob.class); public static String JOB_DATA_CONFIG_NAME = "ftpToFileSystemTaskName"; public static String JOB_DATA_TASK_ID = "ftpToFileSystemTaskID"; public static String JOB_GROUP_NAME = "ftpToFileSystemJobGroup"; // 任务的 分组名称 @Autowired private IHcFtpFileDAO iHcFtpFileDAO; private HcFtpToFileSystemQuartz hcFtpToFileSystemQuartz; protected void executeInternal(JobExecutionContext context) { try { if(logger.isDebugEnabled()){ logger.debug("FTP通用数据文件传接任务:" + context.getJobDetail().getJobClass().getName()+ " taskID:" + context.getJobDetail().getJobDataMap().get(JOB_DATA_TASK_ID) + " ftpfileTaskName:" + context.getJobDetail().getJobDataMap().get(JOB_DATA_CONFIG_NAME), context); } long taskId = Long.parseLong(context.getJobDetail().getJobDataMap() .getString(JOB_DATA_TASK_ID)); // 根据taskId 查询配置信息 Map ftpItemConfigInfo = this.getFtpConfigInfo(taskId); //如果查询不到数据,或者是没有处理class,不在运行 if(ftpItemConfigInfo == null || !ftpItemConfigInfo.containsKey("DEAL_CLASS") || ftpItemConfigInfo.get("DEAL_CLASS") == null){ logger.error("---【PrvncFtpToFileSystemQuartz.executeInternal】查询到的ftp配置数据为空,或没有处理类", ftpItemConfigInfo); return; } String dealClass = ftpItemConfigInfo.get("DEAL_CLASS").toString(); hcFtpToFileSystemQuartz = (HcFtpToFileSystemQuartz) ApplicationContextFactory.getBean(dealClass); hcFtpToFileSystemQuartz.startFtpTask(ftpItemConfigInfo); } catch (Throwable ex) { logger.error("执行任务失败:", ex); } } /** * 查询配置相关信息 * * @param taskId * @return */ private Map getFtpConfigInfo(long taskId) { Map info = new HashMap(); info.put("taskId", taskId); Map ftpItem = getiHcFtpFileDAO().queryFtpItemByTaskId(info); if (logger.isDebugEnabled()) { logger.debug( "---【PrvncFtpToFileSystemQuartz.getFtpConfigInfo】查询到的配置数据为:" + ftpItem, ftpItem); } return ftpItem; } public IHcFtpFileDAO getiHcFtpFileDAO() { if (this.iHcFtpFileDAO == null) { this.iHcFtpFileDAO = ((IHcFtpFileDAO) SpringBeanInvoker .getBean("provInner.iHcFtpFileDAO")); } return iHcFtpFileDAO; } @Override public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { this.executeInternal(jobExecutionContext); } }