| | |
| | | import com.java110.common.util.SpringBeanInvoker; |
| | | import com.java110.job.dao.IPrvncFtpFileDAO; |
| | | import com.java110.job.smo.PrvncFtpToFileSystemQuartz; |
| | | 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 org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean; |
| | | |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | | |
| | | |
| | | /** |
| | | * 将集团文件同步至本地支持的文件系统 |
| | | * |
| | | * |
| | | * @author wuxw7 |
| | | * |
| | | * |
| | | */ |
| | | |
| | | public class PrvncFtpToFileSystemJob extends MethodInvokingJobDetailFactoryBean.StatefulMethodInvokingJob { |
| | | |
| | | public class PrvncFtpToFileSystemJob implements Job { |
| | | |
| | | private static final Logger logger = LoggerFactory.getLogger(PrvncFtpToFileSystemJob.class); |
| | | |
| | | public static String JOB_DATA_CONFIG_NAME = "ftpToFileSystemTaskName"; |
| | |
| | | private IPrvncFtpFileDAO prvncFtpFileDAO; |
| | | @Autowired |
| | | private PrvncFtpToFileSystemQuartz prvncDumpQuartz; |
| | | |
| | | |
| | | protected void executeInternal(JobExecutionContext context) { |
| | | try { |
| | | |
| | | |
| | | if(logger.isDebugEnabled()){ |
| | | logger.debug("FTP通用数据文件传接任务:" + |
| | | context.getJobDetail().getFullName() + " taskID:" + |
| | | context.getJobDetail().getJobDataMap().get(JOB_DATA_TASK_ID) + |
| | | " ftpfileTaskName:" + |
| | | context.getJobDetail().getJobDataMap().get(JOB_DATA_CONFIG_NAME), context); |
| | | context.getJobDetail().getFullName() + " 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(); |
| | | prvncDumpQuartz = (PrvncFtpToFileSystemQuartz) SpringBeanInvoker.getBean(dealClass); |
| | | prvncDumpQuartz.startFtpTask(ftpItemConfigInfo); |
| | |
| | | |
| | | /** |
| | | * 查询配置相关信息 |
| | | * |
| | | * |
| | | * @param taskId |
| | | * @return |
| | | */ |
| | |
| | | return prvncFtpFileDAO; |
| | | } |
| | | |
| | | @Override |
| | | public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException { |
| | | this.executeInternal(jobExecutionContext); |
| | | } |
| | | } |