Я создал весенние пакетные задания, и для запуска того же мы предоставили клиент отдыха, который передаст имя задания в URL-адресе. Пример: http://localhost:8080/ProjectName/launcher/jobs/updateFeedsJob Этот url запустит работу updateFeedsJob. Теперь проблема связана с удалением URL-адреса, то же самое задание работает несколько
раз (5), по одному раз в минуту в unix после развертывания того же в tomcat7
, в то время как локально он работает нормально. Кроме того, общая работа будет завершена в течение 4-5 минут. У меня много googled, но нет правильного решения для этого же.Весеннее пакетное задание работает несколько раз
Любые предложения.
Код:
Launcher класс:
@Path("/launcher")
public class LaunchController {
static String[] springConfig = { "spring/batch/jobs/job-update*.xml" };
@GET
@Path("/semjobs/{jobname}")
@Produces("application/xml")
public Response getScmJobs(@PathParam("jobname") String jobname) {
{
JobDetails jobdetails = new JobDetails();
ApplicationContext context = new ClassPathXmlApplicationContext(springConfig);
JobLauncher jobLauncher = (JobLauncher) context.getBean("jobLauncher");
String category = EMPTY_STRING;
jobdetails.setJobname(jobname);
Job job = (Job) context.getBean(jobname);
JobExecution executionall = null;
String inputpath = EMPTY_STRING;
try {
inputpath = loadPropertiesFile(jobname);
} catch (Exception e) {
LOGGER.error("Error occured while loading the properties file -> " + e);
}
executionall = jobLauncher.run(job, new JobParametersBuilder().addString("inputFile", inputpath).addDate("date", new Date()).toJobParameters());
if (executionall != null) {
jobdetails.setJobstatus(executionall.getExitStatus().getExitCode());
jobdetails.setJobid(executionall.getJobId());
}
} catch (Exception e) {
LOGGER.error("Error occured while launching the job -> " + e);
}
return Response.status(200).entity(jobdetails).build();
}
Spring пакетное задание является общим с flatfileitemreader (чтение из CSV), процессор (обновление API AdWords, детали подачи, этот шаг занимает около 40 сек для.. каждая запись в файле csv, которая содержит около 40 записей) и настраиваемый писатель, который обновляет записи в db.
web.xml
<web-app>
<display-name>Archetype Created Web Application</display-name>
<!-- Auto scan REST service -->
<context-param>
<param-name>resteasy.scan</param-name>
<param-value>true</param-value>
</context-param>
<servlet>
<servlet-name>resteasy-servlet</servlet-name>
<servlet-class>
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>resteasy-servlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
Предоставьте соответствующие примеры кода, поскольку ваш рассказ слишком широк. –