参考以下链接,我实现了Spring批处理+Spring集成与DSL的组合
https://github.com/cppwfs/spring-batch/blob/1f7cada52aba95bcb23d06bc034b21fe1de0a7a5/spring-batch-docs/asciidoc/spring-batch-integration.adoc#通过消息启动batch-jobs
这是密码。
@Bean
public IntegrationFlow integrationFlowUi(JobLaunchingGateway jobLaunchingGateway) {
return IntegrationFlows.from(Files.inboundAdapter(new File(incomingDirUi)).
filter(new SimplePatternFileListFilter("*.csv")).
filter(new AcceptOnceFileListFilter<>()),
c -> c.poller(Pollers.fixedRate(500).maxMessagesPerPoll(1))).
channel("bridgeChannel").
handle(fileMessageToJobRequest()).
handle(jobLaunchingGateway).
log(LoggingHandler.Level.WARN, "headers.id + ': ' + payload").
get();
}
批处理配置为
@Bean
public Job fundingCardActivationJob() {
return jobBuilderFactory.get("fundingCardActivationJob")
.incrementer(new RunIdIncrementer())
.flow(activationStep())
.next(fileRenamingStep())
.end()
.build();
}
作业运行。但在结束时会抛出以下异常。
2017-12-15 12:39:54.867 WARN 13723 --- [ask-scheduler-1] headers.id + ': ' + payload : GenericMessage [payload=JobExecution: id=572, version=2, startTime=Fri Dec 15 12:39:52 PST 2017, endTime=Fri Dec 15 12:39:54 PST 2017, lastUpdated=Fri Dec 15 12:39:54 PST 2017, status=COMPLETED, exitStatus=exitCode=COMPLETED;exitDescription=, job=[JobInstance: id=348, version=0, Job=[fundingCardActivationJob]], jobParameters=[{input.file.name=/Users/sudhir/ui/fundactive_2748_4444444444444444_2017-11-17_12-12-20.018.csv}], headers={id=4dcafdd0-aaed-ff62-bed9-781db41dfdf2, timestamp=1513370394863}]
在jobexecution
结果发送到.log()
之前,某个东西正在关闭(或停止)应用程序上下文。
我们使用ws-outbound-gateway以下面的方式调用webservice。 如果请求xml采用以下方式,则工作正常。 如果我在请求xml中添加SOAP-ENV:Envelope xmlns:SOAP-ENV = " http://schemas . xmlsoap . org/SOAP/Envelope/"和SOAP-ENV:Body,它将抛出如下错误: org.springframew
我有两个要求。 每周一触发作业 对于第一个要求,我尝试了和。他们俩都不工作。该函数未被调用。 对于第二个要求,我尝试了和。我得到下面的错误。 原因:java。lang.IllegalStateException:遇到无效的@Scheduled方法“monthlyData”:用于输入字符串:“2#1”。
我试图使用Spring batch Java配置和Quartz作为调度程序来编写一个批处理作业。 我可以探索的所有示例都通过扩展QuartzJobBean创建了自己的作业类,但我希望上面配置的作业被调度运行。 如何对调度程序功能进行单元测试。
好的,我添加了我的Spring xml配置以对我的情况进行更多解释。 首先,我聚合了7个通道;其次,聚合器释放声明为发布通道的聚合通道。第三,每7个订阅频道选择室内数据库制作每条消息。第四,每个通道使用jdbc出站通道适配器将数据插入外部数据库。 下面我附上了每个与xml配置相关的。。谢谢 但问题是,我必须在7个插入作业成功完成后立即触发一些事件。如何获得7个插入事务完成的点,以触发某些post事
我无法解决这个问题,现在已经坚持了很长时间。我是一个spring-integration-dsl的初学者,任何帮助都将非常感谢。
我使用Web服务方法启动spring batch Job,如果spring batch过程中出现任何异常,控制将返回到processor process方法。但是我需要控制器返回到Web服务方法,在那里我必须捕捉并编写代码以电子邮件发送异常。